REST API · OpenAPI 3.1 · v1.0

Склад в Украине —
доступ из СНГ
через одно API

Интегрируйте магазин из Казахстана, Молдовы, Грузии или России-в-изгнании с нашим украинским складом. 18 REST методов, JSON, HTTPS. Документация на русском — с прицелом на мультирыночную логистику.

✓ Менеджер выдаст ключ и поможет с интеграцией

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

Quick Start — от регистрации до первого заказа

Если вы интегратор из Казахстана, Молдовы или любой другой страны СНГ — сценарий стандартный: получаете ApiKey, подключаете методы заказов, настраиваете webhook статусов. Трансграничная доставка Новой Почтой работает в штатном режиме, таможня — отдельный процесс, который мы помогаем настроить.

1

Запросите ApiKey

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

2

Импортируйте коллекцию

Загрузите Postman Collection или OpenAPI 3.1 JSON.

3

Протестируйте на stage

Менеджер выдаст stage-ключ. Вызовите AddOrder с тестовыми данными — мы вернём ID заказа.

4

Подпишитесь на webhook

Укажите URL для получения статусов. При каждом изменении мы POST-им JSON: новый → собран → отправлен → доставлен.

02

Аутентификация

API принимает ApiKey в теле запроса, а не в HTTP-заголовке. Это исторический дизайн под 1С-интеграции, сохранённый ради обратной совместимости. В каждом запросе передавайте поле ApiKey в корне JSON.

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 в серверной среде — никогда в JavaScript браузера. Ротация раз в 90 дней. Для CI/CD используйте секреты переменных окружения.
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) — не чаще раза в минуту. Превышение даёт HTTP 429.

07

FAQ для разработчиков

Есть ли sandbox?

Да. Менеджер выдаёт stage-ApiKey. Тот же URL, другой ключ — данные не попадают на боевой склад.

Как подписаться на webhook статусов?

Укажите URL в карточке интеграции. Мы POST-им JSON при каждом изменении статуса. Ретраи 3 раза с экспоненциальным бэкоффом.

Поддерживаете ли GraphQL?

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

Есть ли официальный SDK?

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

Как интегрировать с маркетплейсом из СНГ?

Kaspi.kz / OZON / Wildberries — пишите свой connector поверх нашего API. Типично неделя работы разработчика. Таможенные нюансы — отдельный процесс, помогаем.

Поддерживаются ли массовые операции (batch)?

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

Готовы передать
логистику?

Оставьте номер — перезвоним в течение 15 минут и подготовим расчёт

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