> For the complete documentation index, see [llms.txt](https://api-portal.novapost.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api-portal.novapost.com/methods/ua/overview/fullfillment.md).

# Фулфілмент

## Створити товар

> Цей метод використовується для створення одного або декількох записів товарів, які можуть бути додані до плану приймання або до замовлення.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/goods/multiple":{"post":{"summary":"Створити товар","description":"Цей метод використовується для створення одного або декількох записів товарів, які можуть бути додані до плану приймання або до замовлення.\n","operationId":"createGoodsMultiple","tags":["Fulfillment"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","maxItems":5000,"items":{"type":"object","additionalProperties":false,"properties":{"sku":{"type":"string","description":"Унікальний артикул товару в інформаційній системі клієнта.\n\nНе чутливий до регістру.\n","minLength":2,"maxLength":72},"goodsUnitName":{"type":"string","description":"Коротка назва товару.","minLength":2,"maxLength":255},"goodsUnitFullName":{"type":"string","nullable":true,"description":"Повна назва товару.","minLength":2,"maxLength":255},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару.","minimum":0.01,"maximum":100000000},"inventExpireDays":{"type":"integer","nullable":true,"description":"Термін придатності у днях. Вмикає контроль термінів придатності.","minimum":1,"maximum":15000}},"required":["sku","goodsUnitName","price"]}}}}},"responses":{"207":{"description":"Multi-Status. Товари оброблено.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","description":"Масив успішно створених товарів.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор товару."},"sku":{"type":"string","description":"Унікальний артикул товару в інформаційній системі клієнта."},"goodsUnitName":{"type":"string","description":"Коротка назва товару."},"goodsUnitFullName":{"type":"string","nullable":true,"description":"Повна назва товару."},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару."},"inventExpireDays":{"type":"integer","nullable":true,"description":"Термін придатності у днях."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення товару."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення товару."}},"required":["id","sku","goodsUnitName","price","createdAt","updatedAt"]}},"errors":{"type":"object","description":"Помилки валідації для товарів, які не вдалося створити."}},"required":["data","errors"]}}}}}}}}}
```

## Оновити дані товару

> Цей метод дозволяє змінювати дані існуючого товару.\
> В тілі запиту потрібно передавати лише ті поля, які необхідно оновити (часткове оновлення), наприклад назву, ціну або термін придатності товару.\
> \
> 🔸Усі поля необов’язкові, але для виконання оновлення потрібно передати щонайменше одне поле. У разі успіху API повертає оновлені дані товару.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/goods/{id}":{"patch":{"summary":"Оновити дані товару","description":"Цей метод дозволяє змінювати дані існуючого товару.\nВ тілі запиту потрібно передавати лише ті поля, які необхідно оновити (часткове оновлення), наприклад назву, ціну або термін придатності товару.\n\n🔸Усі поля необов’язкові, але для виконання оновлення потрібно передати щонайменше одне поле. У разі успіху API повертає оновлені дані товару.\n","operationId":"updateGoods","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор товару, дані якого потрібно оновити.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Тіло запиту для оновлення даних товару.\nНеобхідно передавати лише поля, значення яких потрібно змінити.\nМає бути вказане щонайменше одне поле.\n","properties":{"goodsUnitName":{"type":"string","description":"Коротка назва товару.","minLength":2,"maxLength":255},"goodsUnitFullName":{"type":"string","description":"Повна назва товару.","minLength":2,"maxLength":255},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару.","minimum":0.01,"maximum":100000000},"inventExpireDays":{"type":"integer","nullable":true,"description":"Термін придатності у днях. Передайте `null`, щоб скасувати облік термінів придатності.","minimum":1,"maximum":15000}},"minProperties":1}}}},"responses":{"200":{"description":"Запит успішно виконано. Дані товару оновлено.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"Оновлені дані товару.","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор товару."},"sku":{"type":"string","description":"Унікальний артикул товару в інформаційній системі клієнта."},"goodsUnitName":{"type":"string","description":"Коротка назва товару."},"goodsUnitFullName":{"type":"string","nullable":true,"description":"Повна назва товару."},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару."},"inventExpireDays":{"type":"integer","nullable":true,"description":"Термін придатності у днях."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення товару."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення товару."}},"required":["id","sku","goodsUnitName","price","createdAt","updatedAt"]}},"required":["data"]}}}}}}}}}
```

## Створити штрихкод

> Цей метод використовується для створення одного або кількох штрихкодів, пов’язаних із конкретним товаром.\
> Дані штрихкодів передаються масивом, що дозволяє створити кілька штрихкодів в одному запиті.\
> \
> У разі успіху API повертає всі створені штрихкоди з їхніми унікальними ідентифікаторами та параметрами, вказаними в запиті.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/goods/{objectId}/barcodes/multiple":{"post":{"summary":"Створити штрихкод","description":"Цей метод використовується для створення одного або кількох штрихкодів, пов’язаних із конкретним товаром.\nДані штрихкодів передаються масивом, що дозволяє створити кілька штрихкодів в одному запиті.\n\nУ разі успіху API повертає всі створені штрихкоди з їхніми унікальними ідентифікаторами та параметрами, вказаними в запиті.\n","operationId":"createBarcodes","tags":["Fulfillment"],"parameters":[{"name":"objectId","in":"path","required":true,"description":"Унікальний ідентифікатор товару, для якого створюються штрихкоди.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","maxItems":5000,"items":{"type":"object","additionalProperties":false,"properties":{"barCode":{"type":"string","description":"Значення штрихкоду.","minLength":2,"maxLength":72},"weight":{"type":"number","format":"float","description":"Вага в кілограмах.","minimum":0.01,"maximum":1000000},"length":{"type":"number","format":"float","description":"Довжина в сантиметрах.","minimum":0.01,"maximum":1000000},"height":{"type":"number","format":"float","description":"Висота в сантиметрах.","minimum":0.01,"maximum":1000000},"width":{"type":"number","format":"float","description":"Ширина в сантиметрах.","minimum":0.01,"maximum":1000000}},"required":["barCode"]}}}}},"responses":{"207":{"description":"Multi-Status. Штрихкоди оброблено.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","description":"Масив успішно створених штрихкодів.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор штрихкоду."},"barcode":{"type":"string","description":"Значення штрихкоду."},"measureUnitName":{"type":"string","description":"Одиниця виміру."},"includes":{"type":"integer","description":"Кількість одиниць у пакуванні."},"weight":{"type":"number","format":"float","description":"Вага в кілограмах."},"length":{"type":"number","format":"float","description":"Довжина в сантиметрах."},"height":{"type":"number","format":"float","description":"Висота в сантиметрах."},"width":{"type":"number","format":"float","description":"Ширина в сантиметрах."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення штрихкоду."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення штрихкоду."}},"required":["id","barcode","measureUnitName","includes","createdAt","updatedAt"]}},"errors":{"type":"object","description":"Помилки валідації для штрихкодів, які не вдалося створити."}},"required":["data","errors"]}}}}}}}}}
```

## Оновити дані штрихкоду

> Цей ендпоінт використовується для оновлення параметрів існуючого штрих-коду в системі за його унікальним ідентифікатором.\
> \
> У тілі запиту слід зазначати лише ті поля, які необхідно оновити.\
> \
> 🔸Усі поля є необов'язковими, проте для виконання оновлення необхідно надати хоча б одне поле. У разі успішного виконання API повертає оновлений об'єкт штрих-коду.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/barcodes/{id}":{"patch":{"summary":"Оновити дані штрихкоду","description":"Цей ендпоінт використовується для оновлення параметрів існуючого штрих-коду в системі за його унікальним ідентифікатором.\n\nУ тілі запиту слід зазначати лише ті поля, які необхідно оновити.\n\n🔸Усі поля є необов'язковими, проте для виконання оновлення необхідно надати хоча б одне поле. У разі успішного виконання API повертає оновлений об'єкт штрих-коду.\n","operationId":"updateBarcode","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор штрихкоду, який необхідно оновити.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Тіло запиту для оновлення даних штрихкоду.\nНеобхідно передавати лише поля, значення яких потрібно змінити.\nМає бути вказане щонайменше одне поле.\n","properties":{"weight":{"type":"number","format":"float","description":"Вага в кілограмах.","minimum":0.01,"maximum":1000000},"length":{"type":"number","format":"float","description":"Довжина в сантиметрах.","minimum":0.01,"maximum":1000000},"height":{"type":"number","format":"float","description":"Висота в сантиметрах.","minimum":0.01,"maximum":1000000},"width":{"type":"number","format":"float","description":"Ширина в сантиметрах.","minimum":0.01,"maximum":1000000}},"minProperties":1}}}},"responses":{"200":{"description":"Штрихкод успішно оновлено.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"Оновлені дані штрихкоду.","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор штрихкоду."},"barcode":{"type":"string","description":"Значення штрихкоду."},"measureUnitName":{"type":"string","description":"Одиниця виміру."},"includes":{"type":"integer","description":"Кількість одиниць у пакуванні."},"weight":{"type":"number","format":"float","description":"Вага в кілограмах."},"length":{"type":"number","format":"float","description":"Довжина в сантиметрах."},"height":{"type":"number","format":"float","description":"Висота в сантиметрах."},"width":{"type":"number","format":"float","description":"Ширина в сантиметрах."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення штрихкоду."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення штрихкоду."}},"required":["id","barcode","measureUnitName","includes","createdAt","updatedAt"]}},"required":["data"]}}}}}}}}}
```

## Створити план приймання

> Цей метод дозволяє створити новий план приймання для отримання товарів на вказаний склад.\
> \
> За один запит можна створити лише один план приймання.\
> План може містити одну або кілька товарних позицій.\
> \
> У разі успіху API повертає створений план приймання з його унікальним ідентифікатором.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/inbound-plans":{"post":{"summary":"Створити план приймання","description":"Цей метод дозволяє створити новий план приймання для отримання товарів на вказаний склад.\n\nЗа один запит можна створити лише один план приймання.\nПлан може містити одну або кілька товарних позицій.\n\nУ разі успіху API повертає створений план приймання з його унікальним ідентифікатором.\n","operationId":"createInboundPlan","tags":["Fulfillment"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Тіло запиту для створення плану приймання.\nНеобхідно передати всі обов’язкові поля.\n","properties":{"externalNumber":{"type":"string","description":"Унікальний номер документа в інформаційній системі клієнта.","minLength":2,"maxLength":72},"guid":{"type":"string","description":"Унікальний GUID документа в інформаційній системі клієнта.","minLength":2,"maxLength":72},"destWarehouse":{"type":"string","description":"Код складу призначення.","minLength":2,"maxLength":255},"deliveryType":{"type":"integer","description":"Тип доставки (1 — Supplier delivery, 3 — Nova Post return, 7 — Nova Post delivery).","enum":[1,3,7]},"additionalInfo":{"type":"string","description":"Коментар.","maxLength":255},"details":{"type":"array","description":"Масив товарних позицій.","minItems":1,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"properties":{"objectId":{"type":"string","format":"uuid","description":"UUID товару в WMS (Warehouse Management System)."},"quantity":{"type":"integer","description":"Кількість одиниць товару.","minimum":1,"maximum":1000000}},"required":["objectId","quantity"]}}},"required":["externalNumber","destWarehouse","deliveryType","details"]}}}},"responses":{"201":{"description":"Запит успішно виконано. План приймання створено.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"Створений план приймання.","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор плану приймання."},"externalNumber":{"type":"string","description":"Номер документа в інформаційній системі клієнта."},"guid":{"type":"string","description":"GUID документа в інформаційній системі клієнта."},"destWarehouse":{"type":"string","description":"Код складу призначення."},"deliveryType":{"type":"integer","description":"Тип доставки."},"additionalInfo":{"type":"string","description":"Коментар."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення плану приймання."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення плану приймання."},"details":{"type":"array","description":"Масив товарних позицій.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор позиції плану приймання."},"objectId":{"type":"string","format":"uuid","description":"UUID товару в WMS (Warehouse Management System)."},"quantity":{"type":"integer","description":"Кількість одиниць товару."}},"required":["id","objectId","quantity"]}}},"required":["id","externalNumber","destWarehouse","deliveryType","createdAt","updatedAt","details"]}},"required":["data"]}}}}}}}}}
```

## Додати товари до плану приймання

> Цей метод використовується для додавання нових товарних позицій до існуючого плану приймання, що перебуває у статусі \`1\` \*\*(New)\*\*.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/inbound-plans/{id}/details":{"post":{"summary":"Додати товари до плану приймання","description":"Цей метод використовується для додавання нових товарних позицій до існуючого плану приймання, що перебуває у статусі `1` **(New)**.\n","operationId":"addGoodsToInboundPlan","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор плану приймання.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"properties":{"objectId":{"type":"string","format":"uuid","description":"UUID товару в WMS (Warehouse Management System)."},"quantity":{"type":"integer","description":"Кількість одиниць товару.","minimum":1,"maximum":1000000}},"required":["objectId","quantity"]}}}}},"responses":{"201":{"description":"Запит успішно виконано. Товарні позиції додано до плану приймання.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор позиції плану приймання."},"objectId":{"type":"string","format":"uuid","description":"UUID товару в WMS (Warehouse Management System)."},"quantity":{"type":"integer","description":"Кількість одиниць товару."}},"required":["id","objectId","quantity"]}}}}}}}}}}
```

## Оновити дані плану приймання

> Цей ресурс призначений для оновлення параметрів плану приймання, що перебуває у статусі \`1\` (\*\*Новий\*\*).\
> \
> Метод дозволяє оновлювати склад призначення, тип доставки, коментар, а також кількість для існуючих товарних позицій.\
> \
> 🔸Додавання або видалення товарних позицій через цей метод не підтримується.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/inbound-plans/{id}":{"patch":{"summary":"Оновити дані плану приймання","description":"Цей ресурс призначений для оновлення параметрів плану приймання, що перебуває у статусі `1` (**Новий**).\n\nМетод дозволяє оновлювати склад призначення, тип доставки, коментар, а також кількість для існуючих товарних позицій.\n\n🔸Додавання або видалення товарних позицій через цей метод не підтримується.\n","operationId":"updateInboundPlan","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор плану приймання.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Тіло запиту для оновлення плану приймання.\nНеобхідно передавати лише поля, значення яких потрібно змінити.\nМає бути вказане щонайменше одне поле.\n","properties":{"destWarehouse":{"type":"string","description":"Код складу призначення.","minLength":2,"maxLength":255},"deliveryType":{"type":"integer","description":"Тип доставки (1 — Supplier delivery, 3 — Nova Post return, 7 — Nova Post delivery).","enum":[1,3,7]},"additionalInfo":{"type":"string","description":"Коментар.","maxLength":255},"details":{"type":"array","description":"Масив існуючих товарних позицій для оновлення кількості.","minItems":1,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"properties":{"objectId":{"type":"string","format":"uuid","description":"UUID товару в WMS (Warehouse Management System).\n\n🔹Обов'язковий, якщо вказано `quantity`.\n"},"quantity":{"type":"integer","description":"Кількість одиниць товару.\n\n🔹Обов'язкова, якщо вказано `objectId`.\n","minimum":1,"maximum":1000000}},"required":["objectId","quantity"]}}},"minProperties":1}}}},"responses":{"200":{"description":"Запит успішно виконано. План приймання оновлено.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"Оновлений план приймання.","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор плану приймання."},"externalNumber":{"type":"string","description":"Номер документа в інформаційній системі клієнта."},"guid":{"type":"string","description":"GUID документа в інформаційній системі клієнта."},"destWarehouse":{"type":"string","description":"Код складу призначення."},"deliveryType":{"type":"integer","description":"Тип доставки."},"additionalInfo":{"type":"string","description":"Коментар."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення плану приймання."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення плану приймання."},"details":{"type":"array","description":"Масив товарних позицій плану приймання.","items":{"type":"object","properties":{"id":{"type":"string","description":"Унікальний ідентифікатор позиції."},"objectId":{"type":"string","description":"UUID товару в WMS (Warehouse Management System)."},"quantity":{"type":"integer","description":"Кількість одиниць товару."}},"required":["id","objectId","quantity"]}}},"required":["id","externalNumber","destWarehouse","deliveryType","createdAt","updatedAt","details"]}},"required":["data"]}}}}}}}}}
```

## Видалити товари з плану приймання

> Цей метод використовується для видалення товарних позицій із плану приймання, що перебуває у статусі \`1\` \*\*(New)\*\*.\
> \
> У разі успіху API повертає список товарних позицій, що залишилися в плані приймання.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/inbound-plans/{id}/details/multiple-delete":{"post":{"summary":"Видалити товари з плану приймання","description":"Цей метод використовується для видалення товарних позицій із плану приймання, що перебуває у статусі `1` **(New)**.\n\nУ разі успіху API повертає список товарних позицій, що залишилися в плані приймання.\n","operationId":"deleteGoodsFromInboundPlan","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор плану приймання.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"properties":{"objectId":{"type":"string","format":"uuid","description":"UUID товару в WMS (Warehouse Management System)."}},"required":["objectId"]}}}}},"responses":{"200":{"description":"Запит успішно виконано. Товарні позиції видалено з плану приймання.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор позиції плану приймання."},"objectId":{"type":"string","format":"uuid","description":"UUID товару в WMS (Warehouse Management System)."},"quantity":{"type":"integer","description":"Кількість одиниць товару."}},"required":["id","objectId","quantity"]}}}}}}}}}}
```

## Перевірити статус плану приймання

> Цей метод використовується для отримання поточного статусу та фактично прийнятих товарних позицій одного або кількох планів приймання (типи документів \`1\`, \`3\`, \`7\`, \`11\`).\
> \
> Підтримує фільтрацію через query-параметри за ідентифікаторами планів приймання, зовнішніми номерами, кодами складів призначення та діапазоном дат створення.\
> \
> Значення в межах одного параметра поєднуються через \`OR\`, між різними параметрами — через \`AND\`.\
> \
> Query-параметри типу масив необхідно передавати, повторюючи параметр для кожного значення. Не передавайте декілька значень через кому.\
> \
> Приклад: \`GET /inbound-plans/status?externalNumbers\[]=PP-1781501639086\&externalNumbers\[]=FF-1781501639011\`\
> \
> Якщо одночасно передано \`startDate\` та \`endDate\`, повертаються документи, для яких \`startDate <= дата створення документа <= endDate\`. При цьому має виконуватися умова \`startDate <= endDate <= поточна дата\`.\
> \
> 🔹\*\*Якщо параметри фільтрації не передані, у відповіді повертаються останні створені плани приймання.\*\*\
> \
> 🔹Якщо за вказаними фільтрами дані відсутні або вказані склади не існують, повертається порожній масив \`data\` зі статусом \`200 OK\`.\
> \
> 🔸Якщо передано невідомі або зайві query-параметри чи некоректний формат дат, API повертає помилку \`422 Unprocessable Entity\`.\
> \
> \*\*Правила відображення прийнятого товару:\*\*\
> \- Якщо товар містить кондиційні (\`condition = 0\`) та некондиційні (\`condition = 1\`) одиниці, вони повертаються окремими об'єктами в масиві \`items\`.\
> \- Якщо для некондиційного товару (\`condition = 1\`) зафіксовано декілька різних причин дефекту, їх кількість підсумовується в єдиному значенні \`receivedQuantity\`.\
> \- Різні одиниці виміру (\`measureUnitName\`) або терміни придатності (\`expiryDate\`) для одного й того самого товару повертаються окремими об'єктами.\
> \- Якщо фактичне приймання ще не відбулося або значення відсутнє, \`receivedQuantity\` повертається як \`0\`.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/inbound-plans/status":{"get":{"summary":"Перевірити статус плану приймання","description":"Цей метод використовується для отримання поточного статусу та фактично прийнятих товарних позицій одного або кількох планів приймання (типи документів `1`, `3`, `7`, `11`).\n\nПідтримує фільтрацію через query-параметри за ідентифікаторами планів приймання, зовнішніми номерами, кодами складів призначення та діапазоном дат створення.\n\nЗначення в межах одного параметра поєднуються через `OR`, між різними параметрами — через `AND`.\n\nQuery-параметри типу масив необхідно передавати, повторюючи параметр для кожного значення. Не передавайте декілька значень через кому.\n\nПриклад: `GET /inbound-plans/status?externalNumbers[]=PP-1781501639086&externalNumbers[]=FF-1781501639011`\n\nЯкщо одночасно передано `startDate` та `endDate`, повертаються документи, для яких `startDate <= дата створення документа <= endDate`. При цьому має виконуватися умова `startDate <= endDate <= поточна дата`.\n\n🔹**Якщо параметри фільтрації не передані, у відповіді повертаються останні створені плани приймання.**\n\n🔹Якщо за вказаними фільтрами дані відсутні або вказані склади не існують, повертається порожній масив `data` зі статусом `200 OK`.\n\n🔸Якщо передано невідомі або зайві query-параметри чи некоректний формат дат, API повертає помилку `422 Unprocessable Entity`.\n\n**Правила відображення прийнятого товару:**\n- Якщо товар містить кондиційні (`condition = 0`) та некондиційні (`condition = 1`) одиниці, вони повертаються окремими об'єктами в масиві `items`.\n- Якщо для некондиційного товару (`condition = 1`) зафіксовано декілька різних причин дефекту, їх кількість підсумовується в єдиному значенні `receivedQuantity`.\n- Різні одиниці виміру (`measureUnitName`) або терміни придатності (`expiryDate`) для одного й того самого товару повертаються окремими об'єктами.\n- Якщо фактичне приймання ще не відбулося або значення відсутнє, `receivedQuantity` повертається як `0`.\n","operationId":"checkInboundPlanStatus","tags":["Fulfillment"],"parameters":[{"name":"countrycode","in":"path","required":true,"description":"Код країни, у якій зареєстровані плани приймання.","schema":{"type":"string"}},{"name":"ids[]","in":"query","required":false,"description":"Масив ID планів приймання. Кожне значення необхідно передавати окремим query-параметром `ids[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"externalNumbers[]","in":"query","required":false,"description":"Масив номерів планів приймання в інформаційній системі контрагента. Кожне значення необхідно передавати окремим query-параметром `externalNumbers[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"destWarehouses[]","in":"query","required":false,"description":"Масив кодів складів призначення. Кожне значення необхідно передавати окремим query-параметром `destWarehouses[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"startDate","in":"query","required":false,"description":"Фільтр за датою створення. Повертає документи, дата створення яких більша або дорівнює `startDate`. Формат ISO 8601.","schema":{"type":"string","format":"date-time"}},{"name":"endDate","in":"query","required":false,"description":"Фільтр за датою створення. Повертає документи, дата створення яких менша або дорівнює `endDate`. Формат ISO 8601.","schema":{"type":"string","format":"date-time"}},{"name":"page","in":"query","required":false,"description":"Номер сторінки пагінації (до 25 об'єктів на сторінку).","schema":{"type":"integer"}}],"responses":{"200":{"description":"Дані успішно отримано.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","description":"Список планів приймання, що відповідають заданим фільтрам.","items":{"type":"object","properties":{"id":{"type":"string","description":"Унікальний ідентифікатор плану приймання."},"externalNumber":{"type":"string","description":"Номер плану приймання в інформаційній системі контрагента."},"status":{"type":"integer","description":"Поточний статус плану приймання."},"destWarehouse":{"type":"string","description":"Код складу призначення."},"items":{"type":"array","description":"Список фактично прийнятих товарних позицій плану приймання.","items":{"type":"object","properties":{"objectId":{"type":"string","description":"Ідентифікатор товару."},"sku":{"type":"string","description":"SKU товару."},"measureUnitName":{"type":"string","description":"Одиниця виміру."},"expectedQuantity":{"type":"integer","description":"Очікувана кількість товару."},"receivedQuantity":{"type":"integer","description":"Фактично прийнята кількість товару. Якщо фактичне приймання ще не відбулося або значення відсутнє, повертається `0`."},"condition":{"type":"integer","description":"Стан товару:\n- `0` – кондиційний\n- `1` – некондиційний\n"},"expiryDate":{"type":"string","format":"date","nullable":true,"description":"Термін придатності товару."}}}}}}},"links":{"type":"object","description":"Посилання для пагінації.","properties":{"first":{"type":"string","description":"Посилання на першу сторінку."},"last":{"type":"string","description":"Посилання на останню сторінку."},"prev":{"type":"string","nullable":true,"description":"Посилання на попередню сторінку."},"next":{"type":"string","nullable":true,"description":"Посилання на наступну сторінку."}}},"meta":{"type":"object","description":"Метадані пагінації.","properties":{"current_page":{"type":"integer","description":"Номер поточної сторінки."},"from":{"type":"integer","description":"Порядковий номер першого запису на поточній сторінці."},"last_page":{"type":"integer","description":"Номер останньої сторінки."},"per_page":{"type":"integer","description":"Кількість записів на сторінці."},"total":{"type":"integer","description":"Загальна кількість записів."}}}}}}}}}}}}}
```

## Скасувати план приймання

> Цей метод використовується для скасування плану приймання, що перебуває у статусі \`1\` \*\*(New)\*\*.\
> \
> У разі успіху план приймання переходить у статус \`10\` \*\*(Canceled)\*\*, а API повертає оновлений об'єкт плану приймання.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/inbound-plans/{id}/cancel":{"patch":{"summary":"Скасувати план приймання","description":"Цей метод використовується для скасування плану приймання, що перебуває у статусі `1` **(New)**.\n\nУ разі успіху план приймання переходить у статус `10` **(Canceled)**, а API повертає оновлений об'єкт плану приймання.\n","operationId":"cancelInboundPlan","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор плану приймання.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Запит успішно виконано. План приймання скасовано.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"Скасований план приймання.","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор плану приймання."},"externalNumber":{"type":"string","description":"Номер документа в системі клієнта."},"guid":{"type":"string","description":"GUID документа в системі клієнта."},"destWarehouse":{"type":"string","description":"Код складу призначення."},"deliveryType":{"type":"integer","description":"Тип доставки."},"additionalInfo":{"type":"string","description":"Коментар."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення плану приймання."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення плану приймання."},"details":{"type":"array","description":"Масив товарних позицій плану приймання.","items":{"type":"object","properties":{"id":{"type":"string","description":"Унікальний ідентифікатор позиції плану приймання."},"objectId":{"type":"string","description":"UUID товару в WMS."},"quantity":{"type":"integer","description":"Кількість одиниць товару."}},"required":["id","objectId","quantity"]}}},"required":["id","externalNumber","destWarehouse","deliveryType","createdAt","updatedAt","details"]}},"required":["data"]}}}}}}}}}
```

## Створити замовлення

> Цей метод використовується для одночасного створення одного або кількох замовлень на відвантаження товарів зі складу.\
> \
> Підтримуються два сценарії доставки:\
> \- \*\*Відвантаження Nova Post\*\* — необхідно вказати номер міжнародної експрес-накладної.\
> \- \*\*Самовивіз\*\* — замовлення створюється без номера міжнародної експрес-накладної.\
> \
> Якщо запит сформований коректно та всі вимоги виконані, кожне замовлення створюється з одним із таких статусів:\
> \- \`1\` \*\*(New)\*\* — коли всі товари є в наявності на складі.\
> \- \`13\` \*\*(Incomplete)\*\* — коли частина товарів недоступна повністю або частково.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/orders/multiple":{"post":{"summary":"Створити замовлення","description":"Цей метод використовується для одночасного створення одного або кількох замовлень на відвантаження товарів зі складу.\n\nПідтримуються два сценарії доставки:\n- **Відвантаження Nova Post** — необхідно вказати номер міжнародної експрес-накладної.\n- **Самовивіз** — замовлення створюється без номера міжнародної експрес-накладної.\n\nЯкщо запит сформований коректно та всі вимоги виконані, кожне замовлення створюється з одним із таких статусів:\n- `1` **(New)** — коли всі товари є в наявності на складі.\n- `13` **(Incomplete)** — коли частина товарів недоступна повністю або частково.\n","operationId":"createOrdersMultiple","tags":["Fulfillment"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":false,"properties":{"externalNumber":{"type":"string","description":"Внутрішній номер замовлення клієнта.","minLength":2,"maxLength":72},"destWarehouse":{"type":"string","description":"Код складу відвантаження.","minLength":2,"maxLength":255},"deliveryType":{"type":"integer","description":"Тип доставки (`1` — Nova Post, `2` — Самовивіз).","enum":[1,2]},"waybillNumber":{"type":"string","description":"Номер міжнародної експрес-накладної. Обов'язковий для `deliveryType = 1`."},"additionalInfo":{"type":"string","description":"Додаткова інформація або коментар.","maxLength":255},"details":{"type":"array","description":"Список товарних позицій, включених до замовлення.","minItems":1,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"properties":{"objectId":{"type":"string","format":"uuid","description":"UUID товару в WMS."},"quantity":{"type":"integer","description":"Кількість одиниць товару.","minimum":1,"maximum":1000},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару.","minimum":0.01,"maximum":100000000},"sum":{"type":"number","format":"float","description":"Загальна сума по товарній позиції.","minimum":0.01,"maximum":100000000}},"required":["objectId","quantity"]}}},"required":["externalNumber","destWarehouse","deliveryType","details"]}}}}},"responses":{"207":{"description":"Запит виконано. Для кожного замовлення повертається результат створення.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","description":"Масив успішно створених замовлень.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор замовлення."},"externalNumber":{"type":"string","description":"Внутрішній номер замовлення клієнта."},"destWarehouse":{"type":"string","description":"Код складу відвантаження."},"deliveryType":{"type":"integer","description":"Тип доставки."},"waybillNumber":{"type":"string","nullable":true,"description":"Номер міжнародної експрес-накладної."},"additionalInfo":{"type":"string","description":"Додаткова інформація або коментар."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення замовлення."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення замовлення."},"details":{"type":"array","description":"Масив товарних позицій замовлення.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор позиції замовлення."},"objectId":{"type":"string","format":"uuid","description":"UUID товару в WMS."},"quantity":{"type":"integer","description":"Кількість товару."},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару."},"sum":{"type":"number","format":"float","description":"Загальна сума позиції."}},"required":["id","objectId","quantity"]}}}},"required":["id","externalNumber","destWarehouse","deliveryType","details"]},"errors":{"type":"object","description":"Помилки створення окремих замовлень."}},"required":["data","errors"]}}}}}}}}}
```

## Додати товари до замовлення

> Цей метод використовується для додавання нових товарних позицій до існуючого замовлення, яке наразі перебуває у статусі \`13\` \*\*(Incomplete)\*\*.\
> \
> У відповіді повертається повний перелік товарних позицій, що наразі містяться у замовленні.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/orders/{id}/details":{"post":{"summary":"Додати товари до замовлення","description":"Цей метод використовується для додавання нових товарних позицій до існуючого замовлення, яке наразі перебуває у статусі `13` **(Incomplete)**.\n\nУ відповіді повертається повний перелік товарних позицій, що наразі містяться у замовленні.\n","operationId":"addGoodsToClientOrder","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор замовлення.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","description":"Масив товарних позицій, які необхідно додати до замовлення.\nНеобхідно передати щонайменше одну товарну позицію.\n","minItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"objectId":{"type":"string","description":"Ідентифікатор товару."},"quantity":{"type":"integer","description":"Кількість товару.","minimum":1,"maximum":1000},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару."},"sum":{"type":"number","format":"float","description":"Загальна сума за товарною позицією."}},"required":["objectId","quantity"]}}}}},"responses":{"201":{"description":"Товари успішно додано до замовлення.\nВідповідь містить повний перелік товарних позицій замовлення.\n","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор позиції замовлення."},"objectId":{"type":"string","description":"Ідентифікатор товару."},"quantity":{"type":"integer","description":"Кількість товару."},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару."},"sum":{"type":"number","format":"float","description":"Загальна сума за товарною позицією."}},"required":["id","objectId","quantity"]}}}}}}}}}}
```

## Перевірити статус замовлення

> Цей метод використовується для отримання поточного статусу одного або кількох замовлень з можливістю додаткової фільтрації.\
> \
> Значення в межах одного параметра фільтрації поєднуються через \*\*OR\*\*, а між різними параметрами — через \*\*AND\*\*.\
> \
> Query-параметри типу масив необхідно передавати, повторюючи параметр для кожного значення. Не передавайте декілька значень через кому.\
> \
> Приклад: \`GET /orders/status?externalNumbers\[]=ORD-001\&externalNumbers\[]=ORD-002\`\
> \
> 🔹\*\*Якщо параметри фільтрації не передані, у відповіді повертаються останні замовлення.\*\*\
> \
> 🔸Цей \`GET\` запит не повертає помилку, якщо використано некоректні, неіснуючі або частково невалідні значення фільтрів.\
> У таких випадках невалідні або порожні фільтри ігноруються, а якщо жодне замовлення не відповідає критеріям, повертається порожній масив.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/orders/status":{"get":{"summary":"Перевірити статус замовлення","description":"Цей метод використовується для отримання поточного статусу одного або кількох замовлень з можливістю додаткової фільтрації.\n\nЗначення в межах одного параметра фільтрації поєднуються через **OR**, а між різними параметрами — через **AND**.\n\nQuery-параметри типу масив необхідно передавати, повторюючи параметр для кожного значення. Не передавайте декілька значень через кому.\n\nПриклад: `GET /orders/status?externalNumbers[]=ORD-001&externalNumbers[]=ORD-002`\n\n🔹**Якщо параметри фільтрації не передані, у відповіді повертаються останні замовлення.**\n\n🔸Цей `GET` запит не повертає помилку, якщо використано некоректні, неіснуючі або частково невалідні значення фільтрів.\nУ таких випадках невалідні або порожні фільтри ігноруються, а якщо жодне замовлення не відповідає критеріям, повертається порожній масив.\n","operationId":"checkOrderStatus","tags":["Fulfillment"],"parameters":[{"name":"ids[]","in":"query","required":false,"description":"Масив системних ідентифікаторів замовлень. Кожне значення необхідно передавати окремим query-параметром `ids[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string","format":"uuid"}}},{"name":"externalNumbers[]","in":"query","required":false,"description":"Масив зовнішніх номерів замовлень. Кожне значення необхідно передавати окремим query-параметром `externalNumbers[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"destWarehouses[]","in":"query","required":false,"description":"Масив кодів складів. Кожне значення необхідно передавати окремим query-параметром `destWarehouses[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"startDate","in":"query","required":false,"description":"Початкова дата створення замовлень у форматі ISO 8601.","schema":{"type":"string","format":"date-time"}},{"name":"endDate","in":"query","required":false,"description":"Кінцева дата створення замовлень у форматі ISO 8601.","schema":{"type":"string","format":"date-time"}},{"name":"page","in":"query","required":false,"description":"Номер сторінки (до 25 об'єктів на сторінку).","schema":{"type":"integer"}}],"responses":{"200":{"description":"Запит успішно виконано.\nПовертається список замовлень, що відповідають критеріям фільтрації.\n","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","description":"Список замовлень.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор замовлення."},"externalNumber":{"type":"string","description":"Зовнішній номер замовлення."},"destWarehouse":{"type":"string","description":"Код складу."},"status":{"type":"integer","description":"Поточний статус замовлення."},"statusTime":{"type":"string","format":"date-time","nullable":true,"description":"Дата та час останньої зміни статусу."},"waybillNumber":{"type":"string","nullable":true,"description":"Номер ЕН/МЕН."}},"required":["id","externalNumber","destWarehouse","status"]}},"links":{"type":"object","description":"Посилання пагінації."},"meta":{"type":"object","description":"Метадані пагінації."}},"required":["data","links","meta"]}}}}}}}}}
```

## Скасувати замовлення

> Цей метод використовується для скасування замовлення, яке наразі перебуває у статусі \`13\` \*\*(Incomplete)\*\*.\
> \
> Після скасування замовлення переходить у статус \`10\` \*\*(Canceled)\*\*.\
> \
> Якщо із замовленням пов'язаний номер накладної Nova Post, його буде автоматично видалено.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/orders/{id}/cancel":{"patch":{"summary":"Скасувати замовлення","description":"Цей метод використовується для скасування замовлення, яке наразі перебуває у статусі `13` **(Incomplete)**.\n\nПісля скасування замовлення переходить у статус `10` **(Canceled)**.\n\nЯкщо із замовленням пов'язаний номер накладної Nova Post, його буде автоматично видалено.\n","operationId":"cancelClientOrder","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор замовлення.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Клієнтське замовлення успішно скасовано.\nВідповідь містить оновлений об'єкт замовлення.\n","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор замовлення."},"externalNumber":{"type":"string","description":"Зовнішній номер замовлення."},"destWarehouse":{"type":"string","description":"Код складу відвантаження."},"deliveryType":{"type":"integer","description":"Тип доставки."},"waybillNumber":{"type":"string","nullable":true,"description":"Номер ЕН/МЕН. Після скасування повертається `null`."},"additionalInfo":{"type":"string","description":"Додаткова інформація або коментар."},"status":{"type":"string","description":"Поточний статус замовлення (`10` = Canceled).","enum":["10"]},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення замовлення."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення замовлення."},"details":{"type":"array","description":"Перелік товарних позицій замовлення.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор позиції замовлення."},"objectId":{"type":"string","description":"Ідентифікатор товару."},"quantity":{"type":"integer","description":"Кількість товару."},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару."},"sum":{"type":"number","format":"float","description":"Загальна сума за товарною позицією."}},"required":["id","objectId","quantity"]}}},"required":["id","externalNumber","status","details"]}},"required":["data"]}}}}}}}}}
```

## Отримати деталі замовлення

> Цей метод використовується для отримання повної деталізації конкретного замовлення за його \*\*id\*\*.\
> \
> У відповіді повертається повна деталізація товарних позицій замовлення, включаючи планову та фактичну кількість, стан товару і серійні номери (за наявності).<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/orders/{id}/details":{"get":{"summary":"Отримати деталі замовлення","description":"Цей метод використовується для отримання повної деталізації конкретного замовлення за його **id**.\n\nУ відповіді повертається повна деталізація товарних позицій замовлення, включаючи планову та фактичну кількість, стан товару і серійні номери (за наявності).\n","operationId":"getOrderDetails","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор замовлення.","schema":{"type":"string"}}],"responses":{"200":{"description":"Дані успішно отримано.\nУ відповіді повертається повна деталізація замовлення.\n","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Унікальний ідентифікатор замовлення."},"externalNumber":{"type":"string","description":"Зовнішній номер замовлення."},"details":{"type":"array","description":"Список товарних позицій замовлення.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор позиції замовлення."},"objectId":{"type":"string","description":"Ідентифікатор товару."},"sku":{"type":"string","description":"SKU товару."},"measureUnitName":{"type":"string","description":"Одиниця виміру."},"plannedQuantity":{"type":"integer","description":"Запланована кількість."},"actualQuantity":{"type":"integer","description":"Фактична кількість."},"condition":{"type":"integer","description":"Стан товару:\n- `0` — Справний,\n- `1` — Бракований.\n","enum":[0,1]},"series":{"type":"array","description":"Список серійних номерів.","items":{"type":"string"}}},"required":["id","objectId","sku","plannedQuantity","actualQuantity","condition","series"]}}},"required":["id","externalNumber","details"]}}}}}}}}}
```

## Оновити дані замовлення

> Цей метод використовується для оновлення параметрів існуючого замовлення, яке наразі перебуває у статусі \`13\` \*\*(Incomplete)\*\*.\
> \
> Запит дозволяє змінювати загальні параметри замовлення, список товарів, а також, якщо доставка здійснюється через \*\*Nova Post\*\*, встановлювати або оновлювати \*\*номер накладної\*\*.\
> \
> 🔸Усі поля необов’язкові, але для виконання оновлення потрібно передати щонайменше одне поле.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/orders/{id}":{"patch":{"summary":"Оновити дані замовлення","description":"Цей метод використовується для оновлення параметрів існуючого замовлення, яке наразі перебуває у статусі `13` **(Incomplete)**.\n\nЗапит дозволяє змінювати загальні параметри замовлення, список товарів, а також, якщо доставка здійснюється через **Nova Post**, встановлювати або оновлювати **номер накладної**.\n\n🔸Усі поля необов’язкові, але для виконання оновлення потрібно передати щонайменше одне поле.\n","operationId":"updateClientOrder","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор замовлення.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"description":"Тіло запиту для оновлення замовлення.\nНеобхідно передавати лише ті поля, які потрібно змінити.\nМає бути передано щонайменше одне поле.\n","properties":{"destWarehouse":{"type":"string","description":"Код складу для відправлення."},"deliveryType":{"type":"integer","description":"Тип доставки (`2` = Nova Post, `5` = Pickup).","enum":[2,5]},"waybilNumber":{"type":"string","nullable":true,"description":"Номер накладної. Обов’язковий, якщо `deliveryType = 2`."},"additionalInfo":{"type":"string","description":"Додаткова інформація або коментар.","minLength":2,"maxLength":255},"details":{"type":"array","description":"Масив товарних позицій, включених до замовлення.","minItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"objectId":{"type":"string","format":"uuid","description":"Ідентифікатор товару.\n\n🔹Обов'язковий, якщо вказано `quantity`.\n"},"quantity":{"type":"integer","description":"Кількість товару.\n\n🔹Обов'язкова, якщо вказано `objectId`.\n","minimum":1,"maximum":1000000},"price":{"type":"number","format":"float","description":"Ціна товару.","minimum":1,"maximum":100000000},"sum":{"type":"number","format":"float","description":"Загальна сума за товарною позицією.","minimum":1,"maximum":100000000}},"required":["objectId","quantity"]}}},"minProperties":1}}}},"responses":{"200":{"description":"Клієнтське замовлення успішно оновлено.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор замовлення."},"externalNumber":{"type":"string","description":"Зовнішній номер замовлення."},"destWarehouse":{"type":"string","description":"Код складу для відправлення."},"deliveryType":{"type":"integer","description":"Тип доставки (2 = Nova Post, 5 = Pickup)."},"waybilNumber":{"type":"string","nullable":true,"description":"Номер накладної."},"additionalInfo":{"type":"string","description":"Додаткова інформація або коментар."},"createdAt":{"type":"string","format":"date-time","description":"Дата створення замовлення."},"updatedAt":{"type":"string","format":"date-time","description":"Дата останнього оновлення замовлення."},"details":{"type":"array","description":"Список товарних позицій у замовленні.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор позиції."},"objectId":{"type":"string","format":"uuid","description":"Ідентифікатор товару."},"quantity":{"type":"integer","description":"Кількість товару."},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару."},"sum":{"type":"number","format":"float","description":"Загальна сума за товарною позицією."}},"required":["id","objectId","quantity"]}}},"required":["id","externalNumber","destWarehouse","deliveryType","details"]}},"required":["data"]}}}}}}}}}
```

## Видалити товари з замовлення

> Цей метод використовується для видалення однієї або кількох товарних позицій із замовлення, яке наразі перебуває у статусі \`13\` \*\*(Incomplete)\*\*.\
> \
> Дозволяється видалення всіх товарів із замовлення. При цьому статус замовлення залишається \`13\` \*\*(Incomplete)\*\*.\
> \
> У відповіді (\`200 OK\`) повертається лише перелік товарних позицій, що залишилися у замовленні.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/orders/{id}/details/multiple-delete":{"post":{"summary":"Видалити товари з замовлення","description":"Цей метод використовується для видалення однієї або кількох товарних позицій із замовлення, яке наразі перебуває у статусі `13` **(Incomplete)**.\n\nДозволяється видалення всіх товарів із замовлення. При цьому статус замовлення залишається `13` **(Incomplete)**.\n\nУ відповіді (`200 OK`) повертається лише перелік товарних позицій, що залишилися у замовленні.\n","operationId":"deleteGoodsFromClientOrder","tags":["Fulfillment"],"parameters":[{"name":"id","in":"path","required":true,"description":"Унікальний ідентифікатор замовлення.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","description":"Масив товарних позицій, які необхідно видалити із замовлення.\nНеобхідно передати щонайменше одну товарну позицію.\n","minItems":1,"items":{"type":"object","additionalProperties":false,"properties":{"objectId":{"type":"string","description":"Ідентифікатор товару."}},"required":["objectId"]}}}}},"responses":{"200":{"description":"Товари успішно видалено із замовлення.\nВідповідь містить лише товарні позиції, що залишилися у замовленні.\n","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Унікальний ідентифікатор позиції замовлення."},"objectId":{"type":"string","description":"Ідентифікатор товару."},"quantity":{"type":"integer","description":"Кількість товару."},"price":{"type":"number","format":"float","description":"Ціна за одиницю товару."},"sum":{"type":"number","format":"float","description":"Загальна сума за товарною позицією."}},"required":["id","objectId","quantity"]}}}}}}}}}}
```

## Перевірити залишки товарів на складі

> Цей метод використовується для отримання інформації про залишки товарів на складах з можливістю фільтрації.\
> \
> Значення в межах одного параметра фільтрації поєднуються через \*\*OR\*\*, а між різними параметрами — через \*\*AND\*\*.\
> \
> Query-параметри типу масив необхідно передавати, повторюючи параметр для кожного значення. Не передавайте декілька значень через кому.\
> \
> Приклад: \`GET /stock-remains?objectIds\[]=O1\&objectIds\[]=O2\`\
> \
> Доступна для замовлення кількість розраховується за формулою:\
> \`availableQuantity = quantity - reservedQuantity\` (якщо результат менше 0, повертається 0).\
> \
> 🔹Якщо запит не містить точкових товарних фільтрів (\`objectIds\`, \`objectArts\`, \`objectTitles\`), повертаються лише товари, для яких хоча б одне зі значень \`quantity\`, \`reservedQuantity\` або \`availableQuantity\` більше 0.\
> \
> 🔹Якщо використано точкові фільтри (\`objectIds\`, \`objectArts\`, \`objectTitles\`), запитані товари повертаються завжди, навіть якщо всі показники залишків дорівнюють 0.\
> \
> Інформація повертається незалежно від наявності штрихкоду у товару. Залишки групуються за датою терміну придатності (\`expiryDate\`).\
> \
> Некоректні або невідомі значення фільтрів ігноруються та не викликають помилок.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Fulfillment"}],"servers":[{"description":"sandbox","url":"https://api-stage.novapost.com/v.1.0/"},{"description":"production","url":"https://api.novapost.com/v.1.0/"}],"security":[{"JWT":[]}],"components":{"securitySchemes":{"JWT":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT-токен авторизації зі строком дії 1 годину у заголовку"}}},"paths":{"/fulfillment/{countrycode}/v1/stock-remains":{"get":{"summary":"Перевірити залишки товарів на складі","description":"Цей метод використовується для отримання інформації про залишки товарів на складах з можливістю фільтрації.\n\nЗначення в межах одного параметра фільтрації поєднуються через **OR**, а між різними параметрами — через **AND**.\n\nQuery-параметри типу масив необхідно передавати, повторюючи параметр для кожного значення. Не передавайте декілька значень через кому.\n\nПриклад: `GET /stock-remains?objectIds[]=O1&objectIds[]=O2`\n\nДоступна для замовлення кількість розраховується за формулою:\n`availableQuantity = quantity - reservedQuantity` (якщо результат менше 0, повертається 0).\n\n🔹Якщо запит не містить точкових товарних фільтрів (`objectIds`, `objectArts`, `objectTitles`), повертаються лише товари, для яких хоча б одне зі значень `quantity`, `reservedQuantity` або `availableQuantity` більше 0.\n\n🔹Якщо використано точкові фільтри (`objectIds`, `objectArts`, `objectTitles`), запитані товари повертаються завжди, навіть якщо всі показники залишків дорівнюють 0.\n\nІнформація повертається незалежно від наявності штрихкоду у товару. Залишки групуються за датою терміну придатності (`expiryDate`).\n\nНекоректні або невідомі значення фільтрів ігноруються та не викликають помилок.\n","operationId":"checkStockRemains","tags":["Fulfillment"],"parameters":[{"name":"objectIds[]","in":"query","required":false,"description":"Масив ID товарів. Кожне значення необхідно передавати окремим query-параметром `objectIds[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"objectArts[]","in":"query","required":false,"description":"Масив артикулів товарів. Кожне значення необхідно передавати окремим query-параметром `objectArts[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"objectTitles[]","in":"query","required":false,"description":"Масив назв товарів. Кожне значення необхідно передавати окремим query-параметром `objectTitles[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"destWarehouses[]","in":"query","required":false,"description":"Масив кодів складів. Кожне значення необхідно передавати окремим query-параметром `destWarehouses[]`.","style":"form","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"remainDate","in":"query","required":false,"description":"Дата актуальності залишків у форматі YYYY-MM-DD.","schema":{"type":"string"}},{"name":"condition","in":"query","required":false,"description":"Ознака дефекту:\n- `0` — кондиція;\n- `1` — некондиція.\n","schema":{"type":"integer","enum":[0,1]}},{"name":"page","in":"query","required":false,"description":"Номер сторінки (до 25 об'єктів на сторінку).","schema":{"type":"integer"}}],"responses":{"200":{"description":"Дані успішно отримано.\nПовертаються залишки товарів із пагінацією.\n","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","description":"Список залишків товарів.","items":{"type":"object","properties":{"objectId":{"type":"string","description":"Ідентифікатор товару."},"sku":{"type":"string","description":"Артикул товару."},"measureUnitName":{"type":"string","nullable":true,"description":"Одиниця виміру."},"quantity":{"type":"integer","description":"Загальна кількість товару."},"reservedQuantity":{"type":"integer","description":"Зарезервована кількість."},"availableQuantity":{"type":"integer","description":"Доступна кількість."},"destWarehouse":{"type":"string","nullable":true,"description":"Код складу."},"expiryDate":{"type":"string","nullable":true,"description":"Дата закінчення терміну придатності."}}}},"links":{"type":"object","description":"Посилання пагінації."},"meta":{"type":"object","description":"Метадані пагінації."}},"required":["data","links","meta"]}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://api-portal.novapost.com/methods/ua/overview/fullfillment.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
