REST API · OpenAPI 3.1 · v1.0

Підключіть склад
до свого магазину
за 1 день

Повний REST API для e-commerce інтеграторів: замовлення, склад, доставка Новою Поштою та Укрпоштою, статуси в реальному часі. 18 методів, JSON, HTTPS.

✓ Менеджер видасть ключ та допоможе з інтеграцією

Або напишіть в Telegram →
18REST методів
7груп ендпоінтів
99.5%SLA uptime
<300мсp95 latency
01

Quick Start — 5 хвилин до першого запиту

API MTP Fulfillment працює на двох базових URL: основний (замовлення, склад, товари) і v2 (заявки на приймання). Всі запити — POST, body у JSON, автентифікація через поле ApiKey в тілі запиту.

1

Отримайте ApiKey

Напишіть вашому менеджеру або використайте метод GetToken з обліковими даними. Ключ діє до відкликання.

2

Імпортуйте колекцію

Завантажте Postman Collection або OpenAPI 3.1 JSON і відкрийте у вашому інструменті.

3

Зробіть тестовий запит

Викличте AddOrder з тестовими даними. Ми повернемо ID замовлення та статус. В пісочниці нижче можна спробувати без коду.

4

Налаштуйте webhook статусів

Підпишіться на ReportStatusOrder, щоб отримувати зміни статусів (новий → зібраний → відправлений → доставлений).

02

Автентифікація

API використовує простий ApiKey у тілі кожного запиту. Не у заголовку — саме у JSON body як поле ApiKey. Такий дизайн історично склався під 1С-інтеграції і зберігається для сумісності.

POST /GetToken — отримати ApiKey
curl -X POST 'https://fulfillment.in.ua:34443/MTPGroupFulfillment/hs/api/GetToken' \
  -H 'Content-Type: application/json' \
  -d '{"Login":"your_login","Password":"your_password"}'
Безпека: зберігайте ApiKey у серверному середовищі — ніколи у JS браузера. Ротуйте ключі раз на 90 днів. Для тестів попросіть менеджера окремий stage-ключ.
03

Групи ендпоінтів

API згруповано за доменними моделями. Нижче — огляд; повний список параметрів і відповідей у OpenAPI специфікації.

Auth 1 метод

  • GetToken — отримати ApiKey по логіну/паролю

Orders 6 методів

  • AddOrder — створити замовлення клієнту
  • EditOrder — редагувати до моменту збору
  • CancelOrder — скасувати замовлення
  • ReportStatusOrder — список змін статусів за період
  • getStatusOrder — поточний статус одного замовлення
  • ListOrder — реєстр замовлень

Products 1 метод

  • AddProduct — додати SKU у каталог

Inventory 2 методи

  • ReportSklad — залишки на складі
  • ReportMoveProduct — рухи товарів за період

Delivery 3 методи (v2)

  • ListDeliveryRequest — список заявок на приймання
  • AddDeliveryRequest — нова заявка на приймання
  • ReportDeliveryRequest — звіт по заявках

Returns 1 метод

  • ListReturnOrder — реєстр повернень

Reference 4 методи

  • getCities — довідник міст Нової Пошти
  • getWarehouses — відділення у місті
  • getStreet — вулиці для адресної доставки
  • senderDetails — реквізити відправника
04

Приклади коду

Нижче — готові сніпети створення замовлення. Підставте свій ApiKey, адаптуйте поля під ваш магазин.

cURL — створення замовлення
curl -X POST 'https://fulfillment.in.ua:34443/MTPGroupFulfillment/hs/api/AddOrder' \
  -H 'Content-Type: application/json' \
  -d '{
    "ApiKey": "YOUR_API_KEY",
    "OrderNumber": "WEB-10542",
    "Recipient": {"Name": "Петренко О.", "Phone": "+380501234567"},
    "Delivery": {"Carrier": "NovaPoshta", "City": "Київ", "Warehouse": "№12"},
    "Items": [{"SKU": "TSHIRT-BLK-L", "Qty": 1, "Price": 550}]
  }'
Node.js — створення замовлення
const res = await fetch('https://fulfillment.in.ua:34443/MTPGroupFulfillment/hs/api/AddOrder', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    ApiKey: process.env.MTP_API_KEY,
    OrderNumber: order.id,
    Recipient: { Name: order.name, Phone: order.phone },
    Delivery: { Carrier: 'NovaPoshta', City: order.city, Warehouse: order.branch },
    Items: order.items.map(i => ({ SKU: i.sku, Qty: i.qty, Price: i.price }))
  })
});
const data = await res.json();
Python — створення замовлення
import os, requests

r = requests.post(
    'https://fulfillment.in.ua:34443/MTPGroupFulfillment/hs/api/AddOrder',
    json={
        'ApiKey': os.environ['MTP_API_KEY'],
        'OrderNumber': order['id'],
        'Recipient': {'Name': order['name'], 'Phone': order['phone']},
        'Delivery': {'Carrier': 'NovaPoshta', 'City': order['city'], 'Warehouse': order['branch']},
        'Items': [{'SKU': i['sku'], 'Qty': i['qty'], 'Price': i['price']} for i in order['items']]
    }
)
r.raise_for_status()
05

Інтерактивна пісочниця

Swagger UI нижче зчитує наш OpenAPI 3.1 файл і дозволяє викликати будь-який метод прямо зі сторінки. Для бойових викликів — підставте свій ApiKey у тіло запиту. Без ключа працюють тільки довідкові методи (getCities, getWarehouses).

06

Помилки та обмеження

API повертає HTTP 200 навіть для бізнес-помилок — статус операції передається у полі Result тіла відповіді. Мережеві помилки (400/401/500) означають проблему з форматом запиту або авторизацією.

Код ResultЗначенняДія
0OKОперація успішна
1Auth failedПеревірте ApiKey
2Validation errorПодивіться поле Message
3Not foundРесурс (замовлення, SKU) не існує
9InternalНапишіть у підтримку з ID запиту

Rate limits: 60 запитів/хвилина на ApiKey. Для вивантажень звітів (ReportSklad, ReportMoveProduct) — не частіше ніж 1 раз на хвилину. Перевищення ліміту дає HTTP 429.

07

FAQ для розробників

Чи є sandbox-середовище?

Так. Менеджер видає окремий stage-ApiKey, дані з нього не потрапляють на виробничий склад. Той самий URL, інший ключ.

Як підписатися на webhook зміни статусу?

Напишіть URL у карточку вашої інтеграції — наш сервер буде POST-ити JSON на нього при кожній зміні статусу. Ретраї 3 рази з експоненційним бекофом.

Чи підтримуєте GraphQL?

Ні, тільки REST. GraphQL не в roadmap — 18 методів не виправдовують накладні витрати.

Чи є офіційний SDK?

Поки ні. Бібліотеки для Node.js і PHP — у roadmap на 2026 Q3. Поточний обхід — ваш власний HTTP-клієнт.

Як інтегрувати з Prom.ua / Rozetka / Horoshop?

Horoshop має готовий модуль — запитайте менеджера. Для Prom/Rozetka — пишіть свій connector поверх нашого API; типово тиждень роботи одного розробника.

Чи підтримуєте масові операції (batch)?

Частково — AddOrder приймає масив замовлень в одному запиті до 100 шт. Для більших обсягів — черга на вашій стороні з rate-limit контролем.

Готовий делегувати
логістику?

Залиш номер — передзвонимо протягом 15 хвилин і розрахуємо умови

✓ Безкоштовна консультація✓ Без зобов'язань✓ Договір за 1 день
📞 Подзвонити 💬 Telegram