> 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/metodi-1/metodi/readme/webhooks.md).

# Webhooks

## Отримати всі підписки

> Отримати список усіх підписок, пов’язаних із клієнтом.\
> \
> 🔹\*\*Опис елементів керування:\*\*\
> \
> \*\*SCHEMA\*\*\</br>\
> Відображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\
> \- \*\*Single line description\*\*\</br>\
> &#x20; Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\
> \- \*\*Multiline description\*\*\</br>\
> &#x20; Розширений опис, що відображає більше одного рядка тексту.\
> &#x20; \
> \*\*EXAMPLE\*\*\</br>\
> Показує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Webhooks"}],"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 година в заголовку"}},"responses":{"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Validation":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Time-out":{"description":"Connection time-out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"errors":{"type":"object","properties":{"":{"type":"string"}}}}}}},"paths":{"/tracking-push/subscribers":{"get":{"tags":["Webhooks"],"description":"Отримати список усіх підписок, пов’язаних із клієнтом.\n\n🔹**Опис елементів керування:**\n\n**SCHEMA**</br>\nВідображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\n- **Single line description**</br>\n  Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\n- **Multiline description**</br>\n  Розширений опис, що відображає більше одного рядка тексту.\n  \n**EXAMPLE**</br>\nПоказує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.\n","operationId":"getSubscribers","responses":{"200":{"description":"Успішна відповідь, що містить список підписок.","content":{"application/json":{"schema":{"type":"object","properties":{"current_page":{"type":"integer","description":"Поточна сторінка набору результатів із пагінацією."},"last_page":{"type":"integer","description":"Остання сторінка набору результатів із пагінацією."},"per_page":{"type":"integer","description":"Кількість елементів на сторінці."},"total":{"type":"integer","description":"Загальна кількість доступних підписок."},"items":{"type":"array","description":"Масив елементів підписок.","items":{"type":"object","properties":{"id":{"type":"string","description":"Публічний ідентифікатор підписки."},"type":{"type":"string","description":"Тип підписки. Може бути `individual`, `numbers`, `legal` або `creator`."},"url":{"type":"string","format":"uri","description":"URL зворотного виклику для webhook-сповіщень."},"isActive":{"type":"boolean","description":"Визначає, чи є підписка наразі активною."},"is_active":{"type":"boolean","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `isActive` замість нього."},"phone":{"type":"string","description":"Номер телефону, пов’язаний із підпискою."},"cid":{"type":"string","description":"Унікальний ідентифікатор користувача."},"eventTypes":{"type":"array","description":"Список типів подій, які буде відстежувати підписка.","items":{"type":"string"}},"event_types":{"type":"array","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `eventTypes` замість нього.","items":{"type":"string"}},"sendWarnings":{"type":"boolean","description":"Визначає, чи надсилаються попередження електронною поштою у разі некоректної роботи методу."},"send_warnings":{"type":"boolean","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `sendWarnings` замість нього."},"warningEmail":{"type":"string","format":"email","description":"Адреса електронної пошти, яка використовується для надсилання попереджень."},"warning_email":{"type":"string","format":"email","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `warningEmail` замість нього."},"contentType":{"type":"string","description":"Визначає Content-Type, який використовується для тіла webhook-запитів. Значення за замовчуванням — `application/json`."},"companyTins":{"type":"array","description":"Список податкових ідентифікаційних номерів юридичної особи, пов’язаної з підпискою.","items":{"type":"string"}},"company_tins":{"type":"array","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `companyTins` замість нього.","items":{"type":"string"}},"secretToken":{"type":"string","description":"Токен авторизації webhook, який використовується для перевірки вхідних webhook-запитів.\n\n🔸Токен є необов’язковим і, якщо його надано, повинен містити лише літерно-цифрові символи.\n","minLength":0,"maxLength":600,"pattern":"^[A-Za-z0-9]+$"},"secret_token":{"type":"string","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `secretToken` замість нього.","minLength":0,"maxLength":600,"pattern":"^[A-Za-z0-9]+$"},"secretTokenHeaderName":{"type":"string","description":"Назва заголовка, що використовується для передачі `secretToken` у webhook-запитах.\n\nЯкщо `secret_token_header_name` передано та його значення не є null, його значення використовується як назва заголовка для передачі `secretToken`.</br>\nЯкщо `secret_token_header_name` не передано або встановлено значення null, використовується назва заголовка за замовчуванням `X-NP-Key`.\n\n🔸Якщо поле вказано, назва заголовка повинна складатися лише з латинських літер, цифр і дефісів, не повинна починатися або закінчуватися дефісом, а також не повинна містити пробіли чи інші спеціальні символи.\n"},"secret_token_header_name":{"type":"string","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `secretTokenHeaderName` замість нього."},"updatedAt":{"type":"string","format":"datetime","description":"Дата та час останнього оновлення підписки."},"updated_at":{"type":"string","format":"datetime","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `updatedAt` замість нього."},"createdAt":{"type":"string","format":"datetime","description":"Дата та час створення підписки."},"created_at":{"type":"string","format":"datetime","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `createdAt` замість нього."},"numbers":{"type":"array","description":"Список номерів відправлень, пов’язаних із підпискою.","items":{"type":"string"}}}}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/Validation"},"503":{"$ref":"#/components/responses/Time-out"}},"summary":"Отримати всі підписки"}}}}
```

## Створити нову підписку

> Цей метод використовується для створення нової підписки для отримання сповіщень про відстеження через webhook.\
> Підписка може бути різних типів, наприклад для окремого номера або для компанії, і є необхідною для клієнтів, які хочуть отримувати оновлення статусів відправлень у реальному часі.\
> \
> Webhook-сповіщення за замовчуванням надсилаються з Content-Type \`application/json\`.\
> \
> 🔹\*\*Опис елементів керування:\*\*\
> \
> \*\*SCHEMA\*\*\</br>\
> Відображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\
> \- \*\*Single line description\*\*\</br>\
> &#x20; Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\
> \- \*\*Multiline description\*\*\</br>\
> &#x20; Розширений опис, що відображає більше одного рядка тексту.\
> &#x20; \
> \*\*EXAMPLE\*\*\</br>\
> Показує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Webhooks"}],"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 година в заголовку"}},"responses":{"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Validation":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Time-out":{"description":"Connection time-out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"errors":{"type":"object","properties":{"":{"type":"string"}}}}}}},"paths":{"/tracking-push/subscribers":{"post":{"tags":["Webhooks"],"description":"Цей метод використовується для створення нової підписки для отримання сповіщень про відстеження через webhook.\nПідписка може бути різних типів, наприклад для окремого номера або для компанії, і є необхідною для клієнтів, які хочуть отримувати оновлення статусів відправлень у реальному часі.\n\nWebhook-сповіщення за замовчуванням надсилаються з Content-Type `application/json`.\n\n🔹**Опис елементів керування:**\n\n**SCHEMA**</br>\nВідображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\n- **Single line description**</br>\n  Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\n- **Multiline description**</br>\n  Розширений опис, що відображає більше одного рядка тексту.\n  \n**EXAMPLE**</br>\nПоказує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.\n","operationId":"createSubscriber","parameters":[{"in":"query","name":"type","description":"Тип підписки, яку необхідно створити. Це обов’язкове поле, яке може приймати такі значення:\n- `individual`: Для особистих облікових записів.\n- `numbers`: Для відстеження конкретних номерів відправлень.\n- `legal`: Для бізнес-облікових записів, що потребують додаткових даних про компанію.\n- `creator`: Для відстеження всіх відправлень, створених клієнтом, незалежно від того, чи вказаний він як відправник.\n","required":true,"schema":{"type":"string","enum":["individual","numbers","legal","creator"]}},{"in":"query","name":"url","description":"URL зворотного виклику, на який надсилатимуться webhook-сповіщення.\nЦе обов’язкове поле та має містити коректний URL.\nURL повинен підтримувати отримання POST-запитів із JSON-навантаженням.\n","required":true,"schema":{"type":"string","format":"uri","minLength":3}},{"in":"query","name":"isActive","description":"Визначає, чи повинна підписка бути активною одразу після створення.\nЯкщо встановлено значення `true`, webhook почне надсилати сповіщення відразу після підтвердження підписки.\nЗа замовчуванням використовується значення `false`, якщо параметр не передано.\n","schema":{"type":"boolean","default":false},"required":true},{"in":"query","name":"phone","description":"Номер телефону, пов’язаний із підпискою.\nЦей параметр є обов’язковим, якщо тип підписки має значення `individual`.\nНомер телефону повинен бути в міжнародному форматі, наприклад 380637445555.\n","required":false,"schema":{"type":"string"}},{"in":"query","name":"secretToken","description":"Токен авторизації webhook: максимальна довжина 600 символів.\n","required":false,"schema":{"type":"string"}},{"in":"query","name":"secretTokenHeaderName","description":"Визначає назву заголовка, який використовується для передачі `secretToken` у webhook-запитах.","required":false,"schema":{"type":"string"}},{"in":"query","name":"eventTypes","description":"Список типів подій, які буде відстежувати підписка.\nЦей параметр дозволяє визначити, які події повинні ініціювати webhook-сповіщення.\nЯкщо значення не передано, підписка за замовчуванням буде створена для всіх типів подій.\n\nСписок підтримуваних типів подій включає:\n- `ReadyToShip`: Відправлення створено та готове до відправки.\n- `Deleted`: Відправлення видалено.\n- `ParcelPlaceRemoved`: Місце відправлення було видалено з відправлення.\n- `Received`: Відправлення отримано одержувачем.\n- `MoneyTransfer`: Створено грошовий переказ, пов’язаний із відправленням.\n- `MoneyTransferReceived`: Грошовий переказ, пов’язаний із відправленням, виплачено одержувачу.\n- `Returned`: Відправлення повертається або вже повернуто відправнику.\n- `Refused`: Одержувач відмовився прийняти відправлення.\n- `Redirecting`: Відправлення перенаправляється на іншу адресу або у відділення.\n- `Utilization`: Відправлення утилізовано.\n- `Redelivery`: Заплановано повторну спробу доставки відправлення.\n- `UndeliveryReason`: Зафіксовано причину недоставки.\n- `ChangeTime`: Дату або час доставки було змінено.\n- `ArrivalSC`: Відправлення прибуло до сортувального центру.\n- `TransferToPartner`: Відправлення передано партнеру для подальшої доставки.\n- `LoadingCourier`: Відправлення завантажено до транспортного засобу кур’єра.\n- `ArrivalSenderWarehouse`: Відправлення прибуло на склад відправника.\n- `DepartureSenderWarehouse`: Відправлення вибуло зі складу відправника.\n- `InCityRecipient`: Відправлення прибуло до міста одержувача.\n- `AwaitingOnDivision`: Відправлення очікує у відділенні або пункті видачі.\n\n🔸Це поле приймає **лише** типи подій, наведені вище.</br>\nБудь-які значення поза цим списком не підтримуються та не повинні передаватися.\n","schema":{"type":"array","items":{"type":"string"},"uniqueItems":true},"required":false},{"in":"query","name":"sendWarnings","description":"Визначає, чи потрібно надсилати попередження електронною поштою у разі виникнення проблем із зазначеним webhook URL.\nЯкщо параметр увімкнено, система надсилатиме сповіщення про проблеми доставки або інші помилки.\nЗа замовчуванням використовується значення `false`.\n","schema":{"type":"boolean","default":false},"required":false},{"in":"query","name":"warningEmail","description":"Адреса електронної пошти, на яку надсилатимуться попередження щодо проблем із методом.\nЄ обов’язковою, якщо параметр `sendWarnings` має значення `true`.\nАдреса електронної пошти повинна бути коректною та активною для забезпечення доставки попереджень.\n","schema":{"type":"string","format":"email"},"required":false},{"in":"query","name":"companyTins","description":"Список податкових ідентифікаційних номерів компаній, що використовуються для типу підписки `legal`.\nЦей параметр є обов’язковим для юридичних підписок і необхідний для підтвердження особи компанії.\nКожен TIN повинен бути коректним UUID.\n","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"required":false}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["individual","numbers","legal","creator"],"description":"Тип підписки, яку необхідно створити."},"url":{"type":"string","format":"uri","description":"URL зворотного виклику, на який надсилатимуться webhook-сповіщення."},"isActive":{"type":"boolean","description":"Визначає, чи є підписка активною одразу після створення."},"phone":{"type":"string","description":"Номер телефону, пов’язаний із підпискою."},"eventTypes":{"type":"array","description":"Список типів подій, які буде відстежувати підписка.","items":{"type":"string"},"uniqueItems":true},"sendWarnings":{"type":"boolean","description":"Визначає, чи потрібно надсилати попередження електронною поштою щодо проблем доставки webhook."},"warningEmail":{"type":"string","format":"email","description":"Адреса електронної пошти, на яку надсилатимуться попередження."},"companyTins":{"type":"array","description":"Список податкових ідентифікаційних номерів компаній для юридичних підписок.","items":{"type":"string","format":"uuid"}},"secretToken":{"type":"string","description":"Токен авторизації webhook, який використовується для перевірки вхідних webhook-запитів.\n\n🔸Токен є необов’язковим і, якщо наданий, повинен містити лише літери та цифри.\n","minLength":0,"maxLength":600,"pattern":"^[A-Za-z0-9]+$"},"secretTokenHeaderName":{"type":"string","description":"Визначає назву HTTP-заголовка, який використовується для передачі `secretToken` у webhook-запитах.\n\nЯкщо `secretTokenHeaderName` передано та його значення не є null, його значення використовується як назва заголовка для передачі `secretToken`.</br>\nЯкщо `secretTokenHeaderName` не передано в запиті або явно встановлено значення null, використовується назва заголовка за замовчуванням `X-NP-Key`.\n\nВимоги до валідації:\n- Дозволені лише латинські літери, цифри та дефіси.\n- Не повинен починатися або закінчуватися дефісом.\n- Не повинен містити пробіли або будь-які інші спеціальні символи.\n\n**🔸Це поле є необов’язковим.**\n","pattern":"A-Za-z0-9"}},"required":["type","url","isActive"]}}}},"responses":{"201":{"description":"Підписку успішно створено.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Унікальний ідентифікатор створеної підписки."},"type":{"type":"string","description":"Тип створеної підписки."},"secretToken":{"type":"string","description":"Токен авторизації webhook, який використовується для перевірки вхідних webhook-запитів.\n\n🔸Токен є необов’язковим і, якщо його надано, повинен містити лише літерно-цифрові символи.\n","minLength":0,"maxLength":600,"pattern":"^[A-Za-z0-9]+$"},"secret_token":{"type":"string","description":"Застаріле поле. Збережено для зворотної сумісності. Використовуйте `secretToken` замість нього.","minLength":0,"maxLength":600,"pattern":"^[A-Za-z0-9]+$"},"secretTokenHeaderName":{"type":"string","description":"Визначає назву HTTP-заголовка, який використовується для передачі `secretToken` у webhook-запитах.\n\n🔸Якщо поле вказано, назва заголовка повинна складатися лише з латинських літер, цифр і дефісів, не повинна починатися або закінчуватися дефісом, а також не повинна містити пробіли чи інші спеціальні символи.\n\n**🔸Це поле є необов’язковим.**\n","pattern":"A-Za-z0-9"},"secret_token_header_name":{"type":"string","description":"Застаріле поле. Збережено для зворотної сумісності. Використовуйте `secretTokenHeaderName` замість нього.","pattern":"A-Za-z0-9"},"url":{"type":"string","format":"uri","description":"URL зворотного виклику для підписки."},"isActive":{"type":"boolean","description":"Визначає, чи є підписка наразі активною."},"is_active":{"type":"boolean","description":"Застаріле поле. Збережено для зворотної сумісності. Використовуйте `isActive` замість нього."},"phone":{"type":"string","description":"Номер телефону, пов’язаний із підпискою."},"cid":{"type":"string","description":"Унікальний ідентифікатор користувача."},"eventTypes":{"type":"array","description":"Список типів подій, які буде відстежувати підписка:\n- `ReadyToShip`: Відправлення створено та готове до відправки.\n- `Deleted`: Відправлення видалено.\n- `ParcelPlaceRemoved`: Місце відправлення було видалено з відправлення.\n- `Received`: Відправлення отримано одержувачем.\n- `MoneyTransfer`: Створено грошовий переказ, пов’язаний із відправленням.\n- `MoneyTransferReceived`: Грошовий переказ, пов’язаний із відправленням, виплачено одержувачу.\n- `Returned`: Відправлення повертається або вже повернуто відправнику.\n- `Refused`: Одержувач відмовився прийняти відправлення.\n- `Redirecting`: Відправлення перенаправляється на іншу адресу або у відділення.\n- `Utilization`: Відправлення утилізовано.\n- `Redelivery`: Заплановано повторну спробу доставки відправлення.\n- `UndeliveryReason`: Зафіксовано причину недоставки.\n- `ChangeTime`: Дату або час доставки було змінено.\n- `ArrivalSC`: Відправлення прибуло до сортувального центру.\n- `TransferToPartner`: Відправлення передано партнеру для подальшої доставки.\n- `LoadingCourier`: Відправлення завантажено до транспортного засобу кур’єра.\n- `ArrivalSenderWarehouse`: Відправлення прибуло на склад відправника.\n- `DepartureSenderWarehouse`: Відправлення вибуло зі складу відправника.\n- `InCityRecipient`: Відправлення прибуло до міста одержувача.\n- `AwaitingOnDivision`: Відправлення очікує у відділенні або пункті видачі.\n\n🔸Це поле приймає **лише** типи подій, наведені вище.</br>\nБудь-які значення поза цим списком не підтримуються та не повинні передаватися.\n","items":{"type":"string"}},"event_types":{"type":"array","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `eventTypes` замість нього.","items":{"type":"string"}},"sendWarnings":{"type":"boolean","description":"Визначає, чи надсилаються попередження електронною поштою у разі некоректної роботи методу."},"send_warnings":{"type":"boolean","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `sendWarnings` замість нього."},"warningEmail":{"type":"string","format":"email","description":"Адреса електронної пошти, яка використовується для надсилання попереджень."},"warning_email":{"type":"string","format":"email","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `warningEmail` замість нього."},"contentType":{"type":"string","description":"Визначає Content-Type, який використовується для тіла webhook-запитів. Значення за замовчуванням — `application/json`."},"companyTins":{"type":"array","description":"Список податкових ідентифікаційних номерів юридичної особи, пов’язаної з підпискою.","items":{"type":"string"}},"company_tins":{"type":"array","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `companyTins` замість нього.","items":{"type":"string"}},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення підписки."},"updated_at":{"type":"string","format":"date-time","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `updatedAt` замість нього."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення підписки."},"created_at":{"type":"string","format":"date-time","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `createdAt` замість нього."}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/Validation"},"503":{"$ref":"#/components/responses/Time-out"}},"summary":"Створити нову підписку"}}}}
```

## Оновити існуючу підписку

> Цей метод оновлює дані існуючої підписки, зокрема callback URL, статус активності, типи подій тощо.\
> \
> Він використовується для зміни налаштувань підписки клієнтами, які хочуть керувати способом отримання сповіщень про відстеження.\
> \
> 🔹\*\*Опис елементів керування:\*\*\
> \
> \*\*SCHEMA\*\*\</br>\
> Відображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\
> \- \*\*Single line description\*\*\</br>\
> &#x20; Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\
> \- \*\*Multiline description\*\*\</br>\
> &#x20; Розширений опис, що відображає більше одного рядка тексту.\
> &#x20; \
> \*\*EXAMPLE\*\*\</br>\
> Показує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Webhooks"}],"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 година в заголовку"}},"responses":{"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Validation":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Time-out":{"description":"Connection time-out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"errors":{"type":"object","properties":{"":{"type":"string"}}}}}}},"paths":{"/tracking-push/subscribers/{id}":{"put":{"tags":["Webhooks"],"description":"Цей метод оновлює дані існуючої підписки, зокрема callback URL, статус активності, типи подій тощо.\n\nВін використовується для зміни налаштувань підписки клієнтами, які хочуть керувати способом отримання сповіщень про відстеження.\n\n🔹**Опис елементів керування:**\n\n**SCHEMA**</br>\nВідображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\n- **Single line description**</br>\n  Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\n- **Multiline description**</br>\n  Розширений опис, що відображає більше одного рядка тексту.\n  \n**EXAMPLE**</br>\nПоказує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.\n","operationId":"updateSubscriber","parameters":[{"name":"id","in":"path","description":"Унікальний ідентифікатор підписки, яку необхідно оновити. Це обов’язковий параметр шляху, який використовується для визначення підписки, що буде змінена.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Тіло запиту, що містить оновлені дані підписки. Кожне поле дозволяє змінювати різні параметри підписки.","required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Нова URL-адреса зворотного виклику для webhook-сповіщень. Цей URL повинен бути доступним і підтримувати обробку POST-запитів."},"isActive":{"type":"boolean","description":"Визначає, чи є підписка наразі активною. Встановіть значення `true`, щоб активувати підписку, або `false`, щоб деактивувати її."},"type":{"type":"string","description":"Тип створеної підписки."},"eventTypes":{"type":"array","description":"Список типів подій, які буде відстежувати підписка. Ви можете вказати, які події повинні ініціювати webhook-сповіщення.","items":{"type":"string"}},"sendWarnings":{"type":"boolean","description":"Визначає, чи повинна система надсилати попередження електронною поштою щодо проблем із зазначеним webhook URL. Встановіть значення `true`, щоб увімкнути надсилання попереджень."},"warningEmail":{"type":"string","format":"email","description":"Адреса електронної пошти для надсилання попереджень. Це поле є необхідним, якщо параметр `sendWarnings` має значення `true`."},"secretToken":{"type":"string","description":"Токен авторизації webhook, який використовується для перевірки вхідних webhook-запитів.\n\n🔸Токен є необов’язковим і, якщо його надано, повинен містити лише літерно-цифрові символи.\n","minLength":0,"maxLength":600,"pattern":"^[A-Za-z0-9]+$"},"secretTokenHeaderName":{"type":"string","description":"Визначає назву HTTP-заголовка, який використовується для передачі `secretToken` у webhook-запитах.\n\nЯкщо `secretTokenHeaderName` передано та його значення не є null, його значення використовується як назва заголовка для передачі `secretToken`.</br>\nЯкщо `secretTokenHeaderName` не передано в запиті або явно встановлено значення null, використовується назва заголовка за замовчуванням `X-NP-Key`.\n\nВимоги до валідації:\n- Дозволені лише латинські літери, цифри та дефіси.\n- Не повинен починатися або закінчуватися дефісом.\n- Не повинен містити пробіли або будь-які інші спеціальні символи.\n\n**🔸Це поле є необов’язковим.**\n","pattern":"A-Za-z0-9"}},"required":["id","url","isActive"]}}}},"responses":{"200":{"description":"Підписку успішно оновлено.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Унікальний ідентифікатор оновленої підписки."},"type":{"type":"string","description":"Тип підписки, наприклад `individual`, `numbers` або `legal`."},"url":{"type":"string","format":"uri","description":"Оновлений URL зворотного виклику для підписки."},"isActive":{"type":"boolean","description":"Визначає, чи є підписка наразі активною."},"is_active":{"type":"boolean","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `isActive` замість нього."},"phone":{"type":"string","description":"Номер телефону, пов’язаний із підпискою, якщо застосовно."},"cid":{"type":"string","description":"Унікальний ідентифікатор користувача."},"eventTypes":{"type":"array","description":"Список типів подій, які буде відстежувати підписка.","items":{"type":"string"}},"event_types":{"type":"array","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `eventTypes` замість нього.","items":{"type":"string"}},"sendWarnings":{"type":"boolean","description":"Визначає, чи надсилаються попередження електронною поштою у разі некоректної роботи методу."},"send_warnings":{"type":"boolean","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `sendWarnings` замість нього."},"warningEmail":{"type":"string","format":"email","description":"Адреса електронної пошти, яка використовується для надсилання попереджень."},"warning_email":{"type":"string","format":"email","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `warningEmail` замість нього."},"contentType":{"type":"string","description":"Визначає Content-Type, який використовується для тіла webhook-запитів.\n\nЗначення за замовчуванням — `application/json`.\n"},"companyTins":{"type":"array","description":"Список податкових ідентифікаційних номерів юридичної особи, пов’язаної з підпискою.","items":{"type":"string"}},"company_tins":{"type":"array","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `companyTins` замість нього.","items":{"type":"string"}},"secretToken":{"type":"string","description":"Токен авторизації webhook, який використовується для перевірки вхідних webhook-запитів.\n\n🔸Токен є необов’язковим і, якщо його надано, повинен містити лише літерно-цифрові символи.\n","minLength":0,"maxLength":600,"pattern":"^[A-Za-z0-9]+$"},"secret_token":{"type":"string","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `secretToken` замість нього.","minLength":0,"maxLength":600,"pattern":"^[A-Za-z0-9]+$"},"secretTokenHeaderName":{"type":"string","description":"Визначає назву HTTP-заголовка, який використовується для передачі `secretToken` у webhook-запитах.\n\n🔸Це поле є необов’язковим і, якщо його вказано, повинно містити лише латинські літери, цифри та дефіси, не повинно починатися або закінчуватися дефісом, а також не повинно містити пробіли чи інші спеціальні символи.\n","pattern":"A-Za-z0-9"},"secret_token_header_name":{"type":"string","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `secretTokenHeaderName` замість нього."},"updatedAt":{"type":"string","format":"date-time","description":"Дата та час останнього оновлення підписки."},"updated_at":{"type":"string","format":"date-time","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `updatedAt` замість нього."},"createdAt":{"type":"string","format":"date-time","description":"Дата та час створення підписки."},"created_at":{"type":"string","format":"date-time","description":"Застаріле поле. Збережено для забезпечення зворотної сумісності. Використовуйте `createdAt` замість нього."}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/Validation"},"503":{"$ref":"#/components/responses/Time-out"}},"summary":"Оновити існуючу підписку"}}}}
```

## Видалити підписку

> Цей метод видаляє підписку, зазначену за її унікальним ідентифікатором. Після видалення підписка більше не отримуватиме webhook-сповіщення.\
> Видалення є незворотним, тому цю дію слід виконувати з обережністю.\
> \
> 🔹\*\*Опис елементів керування:\*\*\
> \
> \*\*SCHEMA\*\*\</br>\
> Відображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\
> \- \*\*Single line description\*\*\</br>\
> &#x20; Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\
> \- \*\*Multiline description\*\*\</br>\
> &#x20; Розширений опис, що відображає більше одного рядка тексту.\
> &#x20; \
> \*\*EXAMPLE\*\*\</br>\
> Показує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Webhooks"}],"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 година в заголовку"}},"responses":{"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Validation":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Time-out":{"description":"Connection time-out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"errors":{"type":"object","properties":{"":{"type":"string"}}}}}}},"paths":{"/tracking-push/subscribers/{id}":{"delete":{"tags":["Webhooks"],"description":"Цей метод видаляє підписку, зазначену за її унікальним ідентифікатором. Після видалення підписка більше не отримуватиме webhook-сповіщення.\nВидалення є незворотним, тому цю дію слід виконувати з обережністю.\n\n🔹**Опис елементів керування:**\n\n**SCHEMA**</br>\nВідображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\n- **Single line description**</br>\n  Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\n- **Multiline description**</br>\n  Розширений опис, що відображає більше одного рядка тексту.\n  \n**EXAMPLE**</br>\nПоказує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.\n","operationId":"deleteSubscriber","parameters":[{"name":"id","in":"path","description":"Унікальний ідентифікатор підписки, яку необхідно видалити. Це обов’язковий параметр шляху, який визначає конкретну підписку, що буде видалена.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Підписку успішно видалено.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Повідомлення-підтвердження про успішне видалення підписки."}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/Validation"},"503":{"$ref":"#/components/responses/Time-out"}},"summary":"Видалити підписку"}}}}
```

## Додати номери до існуючої підписки

> Цей метод дозволяє додавати номери відправлень до існуючої підписки, зазначеної за її унікальним ідентифікатором. Ці номери використовуються для відстеження конкретних відправлень, пов’язаних із підпискою.\
> \
> 🔹\*\*Опис елементів керування:\*\*\
> \
> \*\*SCHEMA\*\*\</br>\
> Відображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\
> \- \*\*Single line description\*\*\</br>\
> &#x20; Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\
> \- \*\*Multiline description\*\*\</br>\
> &#x20; Розширений опис, що відображає більше одного рядка тексту.\
> &#x20; \
> \*\*EXAMPLE\*\*\</br>\
> Показує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Webhooks"}],"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 година в заголовку"}},"responses":{"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Validation":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Time-out":{"description":"Connection time-out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"errors":{"type":"object","properties":{"":{"type":"string"}}}}}}},"paths":{"/tracking-push/subscribers/{id}/numbers":{"post":{"summary":"Додати номери до існуючої підписки","description":"Цей метод дозволяє додавати номери відправлень до існуючої підписки, зазначеної за її унікальним ідентифікатором. Ці номери використовуються для відстеження конкретних відправлень, пов’язаних із підпискою.\n\n🔹**Опис елементів керування:**\n\n**SCHEMA**</br>\nВідображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\n- **Single line description**</br>\n  Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\n- **Multiline description**</br>\n  Розширений опис, що відображає більше одного рядка тексту.\n  \n**EXAMPLE**</br>\nПоказує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.\n","operationId":"addNumbersToSubscriber","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","description":"Унікальний ідентифікатор підписки, до якої будуть додані номери відправлень. Це обов’язковий параметр шляху.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Тіло запиту, що містить список номерів відправлень, які необхідно додати до підписки. Для виконання цієї операції тип підписки повинен бути `numbers`.","required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"numbers":{"type":"array","description":"Список номерів відправлень, які необхідно додати до підписки.","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Номери успішно додано до підписки.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Повідомлення-підтвердження про успішне додавання номерів."},"addedNumbers":{"type":"array","description":"Список номерів, які були успішно додані до підписки.","items":{"type":"string"}},"missedNumbers":{"type":"array","description":"Список номерів, які не вдалося додати (наприклад, некоректні або вже пов’язані з підпискою).","items":{"type":"string"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/Validation"},"503":{"$ref":"#/components/responses/Time-out"}}}}}}
```

## Видалити номери з існуючої підписки

> Цей метод дозволяє видаляти номери відправлень з існуючої підписки, зазначеної за її унікальним ідентифікатором.\
> \
> 🔹\*\*Опис елементів керування:\*\*\
> \
> \*\*SCHEMA\*\*\</br>\
> Відображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\
> \- \*\*Single line description\*\*\</br>\
> &#x20; Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\
> \- \*\*Multiline description\*\*\</br>\
> &#x20; Розширений опис, що відображає більше одного рядка тексту.\
> &#x20; \
> \*\*EXAMPLE\*\*\</br>\
> Показує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.<br>

```json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Webhooks"}],"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 година в заголовку"}},"responses":{"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Validation":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Time-out":{"description":"Connection time-out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"errors":{"type":"object","properties":{"":{"type":"string"}}}}}}},"paths":{"/tracking-push/subscribers/{id}/numbers":{"delete":{"summary":"Видалити номери з існуючої підписки","description":"Цей метод дозволяє видаляти номери відправлень з існуючої підписки, зазначеної за її унікальним ідентифікатором.\n\n🔹**Опис елементів керування:**\n\n**SCHEMA**</br>\nВідображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\n- **Single line description**</br>\n  Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\n- **Multiline description**</br>\n  Розширений опис, що відображає більше одного рядка тексту.\n  \n**EXAMPLE**</br>\nПоказує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.\n","operationId":"deleteNumbersToSubscriber","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","description":"Унікальний ідентифікатор підписки, з якої будуть видалені номери відправлень. Це обов’язковий параметр шляху.","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Тіло запиту, що містить список номерів відправлень, які необхідно видалити з підписки. Для виконання цієї операції тип підписки повинен бути `numbers`.","required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"numbers":{"type":"array","description":"Список номерів відправлень, які необхідно видалити з підписки.","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Номери успішно видалено з підписки.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Повідомлення-підтвердження про успішне видалення номерів."}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/Validation"},"503":{"$ref":"#/components/responses/Time-out"}}}}}}
```

## Перевірка тестового webhook

> Цей метод дозволяє перевірити роботу webhook. Для успішної відповіді потрібна щонайменше одна активна підписка.\
> \
> Webhook-запити за замовчуванням надсилаються з Content-Type \`application/json\`.\
> \
> 🔹\*\*Поведінка тестового webhook:\*\*\</br>\
> Метод повертає відповідь-підтвердження про те, що тестовий webhook-запит було надіслано.\
> Подія webhook з даними відстеження надсилається на URL, вказаний підписником.\
> \
> 🔹\*\*Структура тіла webhook-запиту:\*\*\</br>\
> Тіло webhook-запиту має наступний вигляд:\
> \`\`\`json\
> {\
> &#x20; "number": "SHPL0000000001",\
> &#x20; "scheduled\_delivery\_date": "2024-11-20T20:03:00.000000Z",\
> &#x20; "history\_tracking": \[\
> &#x20;   {\
> &#x20;     "code": "4",\
> &#x20;     "code\_name": "On the way",\
> &#x20;     "country\_code": "UA",\
> &#x20;     "settlement": "Kyiv",\
> &#x20;     "date": "2024-11-19T09:32:05.000000Z"\
> &#x20;   },\
> &#x20;   {\
> &#x20;     "code": "112",\
> &#x20;     "code\_name": "Change of delivery date",\
> &#x20;     "country\_code": "",\
> &#x20;     "settlement": "",\
> &#x20;     "date": "2024-11-19T09:33:56.000000Z"\
> &#x20;   }\
> &#x20; ]\
> }\
> \`\`\`\
> із такими параметрами:\
> \- \`number\` — номер відправлення.\
> \- \`scheduled\_delivery\_date\` — заплановані дата та час доставки у форматі ISO 8601.\
> \- \`history\_tracking\` — масив об’єктів статусів відстеження.\
> &#x20; \- \`code\` — код статусу відстеження.\</br>Докладніше про коди статусів відстеження дивіться в описі параметра \`currentStatus.statusCode\` у відповіді методу \<a href="<https://api-portal.novapost.com/metodi-1/methods/shipments/tracking-shipment#get-shipments-tracking>" target="\_new">\<b>Повне відстеження\</b>\</a>.\
> &#x20; \- \`code\_name\` — назва статусу відстеження.\
> &#x20; \- \`country\_code\` — код країни, у якій було зафіксовано статус.\
> &#x20; \- \`settlement\` — назва населеного пункту.\
> &#x20; \- \`date\` — дата та час події статусу.\
> \
> Тіло webhook-запиту містить щонайменше один статус відстеження.\</br>\
> Кожне наступне webhook-сповіщення містить новий доданий статус і всі раніше доставлені статуси.\
> \
> 🔹\*\*Опис елементів керування:\*\*\
> \
> \*\*SCHEMA\*\*\</br>\
> Відображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\
> \- \*\*Single line description\*\*\</br>\
> &#x20; Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\
> \- \*\*Multiline description\*\*\</br>\
> &#x20; Розширений опис, що відображає більше одного рядка тексту.\
> &#x20; \
> \*\*EXAMPLE\*\*\</br>\
> Показує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.<br>

````json
{"openapi":"3.0.0","info":{"title":"API Nova Post","version":"1.0.0"},"tags":[{"name":"Webhooks"}],"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 година в заголовку"}},"responses":{"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Validation":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Time-out":{"description":"Connection time-out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"type":"object","properties":{"errors":{"type":"object","properties":{"":{"type":"string"}}}}}}},"paths":{"/tracking-push/subscribers/test-webhook":{"post":{"summary":"Перевірка тестового webhook","description":"Цей метод дозволяє перевірити роботу webhook. Для успішної відповіді потрібна щонайменше одна активна підписка.\n\nWebhook-запити за замовчуванням надсилаються з Content-Type `application/json`.\n\n🔹**Поведінка тестового webhook:**</br>\nМетод повертає відповідь-підтвердження про те, що тестовий webhook-запит було надіслано.\nПодія webhook з даними відстеження надсилається на URL, вказаний підписником.\n\n🔹**Структура тіла webhook-запиту:**</br>\nТіло webhook-запиту має наступний вигляд:\n```json\n{\n  \"number\": \"SHPL0000000001\",\n  \"scheduled_delivery_date\": \"2024-11-20T20:03:00.000000Z\",\n  \"history_tracking\": [\n    {\n      \"code\": \"4\",\n      \"code_name\": \"On the way\",\n      \"country_code\": \"UA\",\n      \"settlement\": \"Kyiv\",\n      \"date\": \"2024-11-19T09:32:05.000000Z\"\n    },\n    {\n      \"code\": \"112\",\n      \"code_name\": \"Change of delivery date\",\n      \"country_code\": \"\",\n      \"settlement\": \"\",\n      \"date\": \"2024-11-19T09:33:56.000000Z\"\n    }\n  ]\n}\n```\nіз такими параметрами:\n- `number` — номер відправлення.\n- `scheduled_delivery_date` — заплановані дата та час доставки у форматі ISO 8601.\n- `history_tracking` — масив об’єктів статусів відстеження.\n  - `code` — код статусу відстеження.</br>Докладніше про коди статусів відстеження дивіться в описі параметра `currentStatus.statusCode` у відповіді методу <a href=\"https://api-portal.novapost.com/metodi-1/methods/shipments/tracking-shipment#get-shipments-tracking\" target=\"_new\"><b>Повне відстеження</b></a>.\n  - `code_name` — назва статусу відстеження.\n  - `country_code` — код країни, у якій було зафіксовано статус.\n  - `settlement` — назва населеного пункту.\n  - `date` — дата та час події статусу.\n\nТіло webhook-запиту містить щонайменше один статус відстеження.</br>\nКожне наступне webhook-сповіщення містить новий доданий статус і всі раніше доставлені статуси.\n\n🔹**Опис елементів керування:**\n\n**SCHEMA**</br>\nВідображає повну технічну структуру запиту або відповіді, включаючи назви полів, типи даних, обов’язкові поля, допустимі значення та правила валідації.\n- **Single line description**</br>\n  Опис, що вміщується в один рядок; текст, який не поміщається, залишається прихованим.\n- **Multiline description**</br>\n  Розширений опис, що відображає більше одного рядка тексту.\n  \n**EXAMPLE**</br>\nПоказує готовий приклад JSON із правильно сформованими значеннями для демонстрації того, як має виглядати валідний запит або відповідь.\n","operationId":"testWebhook","tags":["Webhooks"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"numbers":{"type":"array","description":"Тестовий номер відправлення завжди має значення SHPL0000000001.","items":{"type":"string"}},"id":{"type":"string","description":"Унікальний ідентифікатор створеної підписки."},"cid":{"type":"string","description":"Унікальний ідентифікатор користувача."}}}}}},"responses":{"200":{"description":"Тестовий webhook успішно надіслано.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"string","description":"Повідомлення-підтвердження про успішне виконання тесту."}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/Validation"},"503":{"$ref":"#/components/responses/Time-out"}}}}}}
````


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://api-portal.novapost.com/metodi-1/metodi/readme/webhooks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
