Интеграция ТСД с МойСклад — это ключевой шаг к автоматизации складского учёта, который позволяет отказаться от бумажных инвентаризаций, ускорить приёмку и отгрузку в 3–5 раз и свести ошибки операторов к минимуму. В этой инструкции мы подробно разберём, как подключить терминал сбора данных на Android к облачной системе МойСклад через REST API, покажем рабочие примеры кода и поможем выбрать оптимальный способ интеграции для складов в Беларуси и России.
Если вы только выбираете оборудование, рекомендуем сначала ознакомиться с руководством по выбору ТСД — там мы сравниваем популярные модели для складов и ритейла.
1. Зачем нужна интеграция ТСД с МойСклад
1.1. Проблемы ручного учёта
Без интеграции между ТСД и учётной системой склад работает в «двух мирах»: оператор сканирует штрихкоды терминалом, а затем вручную переносит данные в МойСклад — вводит количества, ищет нужные позиции, переносит документы. Это приводит к типичным проблемам:
- Опечатки и пересортица — ручной ввод quantities в 100+ строк документа неизбежно порождает ошибки;
- Задержки — данные попадают в систему через часы после физической операции, склад «слеп» в реальном времени;
- Дублирование труда — сотрудник выполняет одну работу дважды: на ТСД и в учётной системе;
- Сложность аудита — невозможно отследить, кто и когда внёс изменения, нет связи между сканом и записью в МойСклад.
1.2. Что даёт интеграция
При корректной интеграции ТСД становится полноценным клиентом МойСклад: терминал получает задания из системы, отправляет результаты обратно, и всё происходит в реальном времени. Конкретные результаты, которые видят наши клиенты в Беларуси и России:
- Скорость приёмки увеличивается в 3–5 раз за счёт автоматического создания документа в МойСклад;
- Инвентаризация склада на 10 000 позиций занимает 1–2 смены вместо 3–5 дней;
- Ошибки пересортицы снижаются до 0,1–0,3% (против 2–5% без интеграции);
- Операторы работают по пошаговому интерфейсу — минимум обучения, максимум производительности.
💡 По нашим замерам на складах в Минске и Москве, окупаемость интеграции ТСД + МойСклад составляет 2–4 месяца для складов с оборотом от 500 SKU.
2. Архитектура интеграции: как это работает
2.1. Общая схема
МойСклад — облачная система, основным способом интеграции с которой является REST API JSON. Архитектура связки «ТСД → МойСклад» выглядит так:
┌──────────────┐ HTTPS/JSON ┌──────────────────┐
│ ТСД (Android)│ ──────────────────► │ МойСклад API │
│ Mertech S40 │ ◄────────────────── │ api.moysklad.ru │
│ + Приложение │ Ответ JSON │ │
└──────────────┘ └──────────────────┘
│ │
│ Wi-Fi / 4G │
▼ ▼
Склад Wi-Fi Облако МойСклад
ТСД-приложение (в нашем случае — Mertech S40 с кастомной прошивкой) делает HTTP-запросы к API МойСклада, получает данные о товарах, остатках и документах, а после выполнения операций отправляет результаты обратно.
2.2. Два подхода к интеграции
Существует два принципиально разных подхода, и выбор между ними — один из первых решений, которые нужно принять:
| Критерий | Прямое API (REST) | Через 1С-коннектор |
|---|---|---|
| Скорость отклика | 1–3 секунды (прямой запрос) | 5–15 секунд (через 1С) |
| Надёжность | Высокая (зависит от Wi-Fi) | Средняя (3 звена: ТСД→1С→МС) |
| Сложность разработки | Средняя (REST API стандарт) | Высокая (1С + HTTP-сервис) |
| Оффлайн-работа | Нужна реализация | Нужна реализация |
| Стоимость поддержки | Низкая | Высокая (1С-специалист) |
| Актуальность данных | Реальное время | С задержкой синхронизации |
| Рынки | Беларусь + Россия | Россия (1С-учёт) |
Для большинства складов в Беларуси, где 1С не является обязательным звеном, прямое API — оптимальный вариант. В России, где 1С-учёт часто уже настроен, может быть оправдан коннектор через 1С — подробнее об этом в статье о подключении ТСД к 1С.
3. Подготовка: что нужно до интеграции
3.1. Требования к ТСД
Для работы с МойСклад API терминал должен удовлетворять минимальным требованиям:
- ОС: Android 8.0+ (рекомендуется Android 10+);
- Сканер штрихкодов: встроенный 2D-имиджер (для DataMatrix / QR / EAN);
- Сеть: Wi-Fi 802.11 b/g/n/ac или 4G LTE;
- Память: от 2 ГБ ОЗУ, 16 ГБ ПЗУ (для кеша номенклатуры);
- Защита: IP65+ (склад — пыльно и влажно).
Модели, которые мы рекомендуем и с которыми реально работали: Mertech S40, Zebra MC3300x, Honeywell Dolphin CT60, Urovo DT50.
3.2. Подготовка аккаунта МойСклад
Для доступа к API необходим токен авторизации. Получить его можно в личном кабинете:
- Войдите в МойСклад с правами администратора;
- Перейдите в Настройки → Токены для API;
- Нажмите «Создать токен»;
- Укажите название: например,
tsd-integration-production; - Выберите права доступа: минимум — «Чтение и запись» для сущностей «Товар», «Остаток», «Документ»;
- Скопируйте токен — он показывается только один раз!
⚠️ Храните токен в защищённом хранилище (Android Keystore), а не в коде приложения. Токен предоставляет полный доступ к вашему МойСкладу в рамках выбранных прав.
3.3. Базовые URL и заголовки
API МойСклад доступен по адресу:
https://api.moysklad.ru/api/remap/1.2/
Для Беларуси эндпоинт тот же — МойСклад использует единый API-сервер. Все запросы должны содержать заголовки:
Authorization: Bearer <YOUR_TOKEN>
Content-Type: application/json
Accept-Encoding: gzip
4. Пошаговая инструкция интеграции
4.1. Шаг 1 — Получение списка товаров
Первая задача при запуске приложения на ТСД — загрузить номенклатуру. Это нужно для автономного поиска по штрихкоду и отображения названий товаров.
GET https://api.moysklad.ru/api/remap/1.2/entity/product?
limit=100&
offset=0&
fields=name,code,barcodes,articlePrice
Пример ответа:
{
"meta": {
"size": 15420,
"limit": 100,
"offset": 0
},
"rows": [
{
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/product/abc123",
"type": "product"
},
"id": "abc123",
"name": "Гвоздь строительный 100мм",
"code": "GV-100",
"barcodes": [
{
"ean13": "4607025392408"
}
],
"articlePrice": 45.0
}
]
}
Если на складе более 10 000 SKU, загружайте данные постранично (параметры limit и offset) и кешируйте в локальную SQLite-базу на ТСД. Это обеспечит работу даже при кратковременной потере Wi-Fi.
4.2. Шаг 2 — Получение остатков
Для инвентаризации и сборки заказов необходимо знать актуальные остатки:
GET https://api.moysklad.ru/api/remap/1.2/entity/assortment?
filter=stockStore=https://api.moysklad.ru/api/remap/1.2/entity/store/STORE_ID
В ответе придёт список товаров с полями stock (остаток) и reserve (резерв). Сохраняем в локальный кеш и обновляем каждые 5–15 минут в зависимости от интенсивности операций.
4.3. Шаг 3 — Создание документа приёмки
Когда оператор принимает товар на ТСД, приложение создаёт документ «Приёмка» (demand) в МойСклад:
POST https://api.moysklad.ru/api/remap/1.2/entity/demand
{
"name": "приемка-001",
"organization": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/organization/ORG_ID",
"type": "organization"
}
},
"store": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/store/STORE_ID",
"type": "store"
}
},
"positions": [
{
"quantity": 50,
"price": 100.0,
"assortment": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/product/abc123",
"type": "product"
}
}
}
]
}
Успешный ответ вернёт созданный документ со статусом и присвоенным ID. Оператор видит на экране ТСД: «Приёмка создана: приемка-001».
4.4. Шаг 4 — Инвентаризация
Инвентаризация — самый частый сценарий использования ТСД. Процесс состоит из двух этапов:
Этап А: Создание документа инвентаризации в МойСклад
POST https://api.moysklad.ru/api/remap/1.2/entity/inventory
{
"name": "инвентаризация-2026-06",
"organization": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/organization/ORG_ID",
"type": "organization"
}
},
"store": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/store/STORE_ID",
"type": "store"
}
}
}
Этап Б: Добавление позиций по результатам сканирования
Оператор сканирует каждую ячейку, приложение формирует массив позиций и отправляет:
PUT https://api.moysklad.ru/api/remap/1.2/entity/inventory/INV_ID
{
"positions": [
{
"quantity": 48,
"assortment": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/product/abc123",
"type": "product"
}
}
},
{
"quantity": 120,
"assortment": {
"meta": {
"href": "https://api.moysklad.ru/api/remap/1.2/entity/product/def456",
"type": "product"
}
}
}
]
}
4.5. Шаг 5 — Обработка ошибок и ретраи
Складской Wi-Fi может быть нестабилен, поэтому каждое API-вызов в приложении должен обрабатываться по схеме:
- Попытка отправки — таймаут 10 секунд;
- При ошибке сети — ретрай через 2 секунды, максимум 3 попытки;
- При 429 (Rate Limit) — пауза 5 секунд, ретрай;
- При 401/403 — показать ошибку авторизации, остановить синхронизацию;
- При 5xx — ретрай с экспоненциальной задержкой (2s → 4s → 8s);
- Все неудачные операции — записать в локальную очередь и отправить при восстановлении связи.
// Пример логики ретрая на Kotlin (Android)
fun sendWithRetry(request: ApiRequest, maxRetries: Int = 3): ApiResponse {
var delay = 2000L
repeat(maxRetries) { attempt ->
try {
return apiClient.execute(request)
} catch (e: NetworkException) {
if (attempt == maxRetries - 1) {
offlineQueue.enqueue(request)
throw e
}
Thread.sleep(delay)
delay *= 2
}
}
}
5. Настройка приложения Mertech S40
5.1. Установка и первичная конфигурация
Наши ТСД Mertech S40 поставляются с предустановленным приложением для складских операций. Если вы устанавливаете с нуля:
- Скачайте APK с закрытого дистрибутива (ссылку предоставляет менеджер);
- Установите, разрешив «Неизвестные источники» в настройках Android;
- При первом запуске введите: URL API, токен МойСклад, ID склада, ID организации;
- Приложение проверит подключение: GET-запрос к
/api/remap/1.2/entity/product?limit=1; - Запустите начальную синхронизацию номенклатуры.
5.2. Режимы работы
Приложение поддерживает следующие режимы, каждый из которых соответствует определённому API-методу:
- Приёмка — создание документа
demand; - Отгрузка — создание документа
shipment; - Инвентаризация — создание/обновление
inventory; - Перемещение — создание
moveмежду складами; - Сборка заказа — работа с
customerorder; - Маркировка Честный ЗНАК / ЕАЭС — работа с кодами DataMatrix (актуально для России и Беларуси).
5.3. Оффлайн-режим
Критически важная функция для складов с нестабильным Wi-Fi. Логика работы:
- При потере сети приложение переключается в оффлайн-режим (визуальный индикатор в статус-баре);
- Все операции записываются в локальную SQLite-базу;
- При восстановлении сети — автоматическая отправка накопленных операций;
- Конфликтующие операции (изменился остаток у другого оператора) — подсветка в интерфейсе для ручной проверки.
6. Сравнение способов интеграции
6.1. Методы подключения
| Метод | Описание | Плюсы | Минусы |
|---|---|---|---|
| REST API (прямой) | ТСД-приложение обращается к API МойСклад напрямую | Быстро, просто, реальное время | Нужна разработка Android-приложения |
| 1С-коннектор | ТСД → 1С → МойСклад (через HTTP-сервис 1С) | Использует готовый 1С-учёт | Двоная разработка, задержки, 3 звена |
| Webhooks + очередь | МойСклад шлёт webhooks, ТСД-сервер обрабатывает | Событийная модель, экономия запросов | Сложнее отладка, нужен промежуточный сервер |
| CSV-импорт/экспорт | Периодический обмен файлами | Простота, не требует API | Не реальное время, конфликты данных |
6.2. Что выбрать для вашего склада
Малый склад (до 2000 SKU, 1–2 ТСД): достаточно прямого REST API с простым приложением. Разработка занимает 2–4 недели.
Средний склад (2000–15 000 SKU, 3–10 ТСД): REST API + оффлайн-кеш + очередь операций. Рекомендуем готовое решение на базе Mertech S40.
Крупный склад (15 000+ SKU, 10+ ТСД): REST API + промежуточный сервер (для балансировки, дедупликации сканов, мониторинга). При наличии 1С — коннектор может быть оправдан.
7. Решение типичных проблем
7.1. Проблемы подключения
- Ошибка 401 Unauthorized — токен недействителен или отозван. Проверьте в МойСклад → Настройки → Токены API. Перегенерируйте токен и обновите в приложении ТСД.
- Ошибка 429 Too Many Requests — МойСклад ограничивает частоту запросов (обычно 300 в минуту). Добавьте batching: отправляйте не по одной позиции, а массивом. Параметр
limitдо 100. - Таймауты при загрузке номенклатуры — при 50 000+ SKU используйте фильтры:
filter=updated>=2026-06-01для инкрементальной загрузки. - SSL-ошибки на старых Android — Android 7 и ниже не поддерживают TLS 1.3. Обновите ОС или добавьте сертификат в truststore приложения.
7.2. Проблемы данных
- Штрихкод не найден — товар существует в МойСклад, но у него не заполнен штрихкод. Решение: в МойСклад → Товары → заполняйте поле «Штрихкод» (EAN13) для всех SKU. Альтернатива: ищите по
code(артикул) через API:filter=code=GV-100. - Пересортица при инвентаризации — оператор сканирует товар, которого нет в ячейке по данным МойСклад. Наше приложение подсвечивает такие позиции жёлтым цветом и требует подтверждения.
- Отрицательные остатки — МойСклад может запретить отрицательные остатки (настройка в карточке склада). Если при отгрузке возникает ошибка, проверьте: не был ли товар уже зарезервирован другим заказом.
7.3. Проблемы производительности
- Медленная синхронизация номенклатуры — кешируйте только нужные поля (
name, code, barcodes), не грузите всё. Обновляйте дельту поupdated; - Тормозит интерфейс ТСД — выносите сетевые запросы в фоновый поток (Coroutine/AsyncTask), не блокируйте UI;
- Расход батареи — ограничьте частоту синхронизации (не каждые 5 секунд, а по событию или каждые 30 секунд).
8. Специфика для Беларуси и России
8.1. Беларусь
На белорусском рынке МойСклад набирает популярность среди малого и среднего бизнеса — это удобная альтернатива тяжёлым 1С-конфигурациям. Специфика:
- Интернет на складах за пределами Минска может быть нестабилен — оффлайн-режим обязателен;
- Маркировка товаров в ЕАЭС (DataMatrix) — требуется поддержка 2D-сканирования;
- Интеграция с белорусской номенклатурой — убедитесь, что коды товаров соответствуют стандартам БГКИ.
8.2. Россия
В России МойСклад — одна из самых популярных систем для складов и интернет-магазинов. Дополнительные требования:
- Честный ЗНАК — система маркировки требует отдельной интеграции. ТСД сканирует DataMatrix-код (код марки), проверяет его через API Честного ЗНАКа и затем списывает/перемещает в МойСклад;
- ЭДО (электронный документооборот) — приёмка по УПД/ТОРГ-12, связка с МойСклад;
- НДС 20% — убедитесь, что цены в API-запросах передаются с правильным значением НДС.
9. FAQ
Можно ли работать с МойСклад без интернета?
Нет, МойСклад — полностью облачная система. Однако приложение на ТСД может работать в оффлайн-режиме: сканировать, сохранять операции локально и синхронизировать при появлении сети. Это не полноценная работа без интернета, а буферизация операций.
Сколько стоит интеграция ТСД с МойСклад?
Стоимость зависит от способа: если вы используете готовое решение (Mertech S40 с нашим ПО), настройка стоит от 500 BYN / 15 000 RUB. Разработка кастомного приложения под ваши процессы — от 3000 BYN / 90 000 RUB. Поддержка API МойСклад входит в тариф МойСклад (начиная с плана «Оптимальный»).
Какой ТСД лучше для МойСклад?
Для большинства складов оптимальны: Mertech S40 (性价比, доступен в Беларуси), Zebra MC3300x (премиум), Urovo DT50 (средний сегмент). Ключевые критерии: Android 8+, встроенный 2D-сканер, Wi-Fi, защита IP65+. Подробнее — в руководстве по выбору ТСД.
Можно ли интегрировать несколько ТСД одновременно?
Да, МойСклад API не ограничивает количество подключённых клиентов. Каждый ТСД использует один и тот же токен (или отдельные токены для каждого устройства). Важно: при одновременной работе 10+ ТСД на одном складе используйте промежуточный сервер для координации, чтобы избежать конфликтов при работе с одними и теми же документами.
Как обновлять данные при изменениях в МойСклад?
Используйте Webhooks МойСклад: настройте в личном кабинете уведомления об изменениях товаров, остатков и документов. Ваш сервер (или приложение ТСД) получает POST-запрос при каждом изменении и обновляет локальный кеш. Альтернатива — периодический опрос API с фильтром по updated.
10. Заключение
Интеграция ТСД с МойСклад через REST API — это прямой, надёжный и масштабируемый путь к автоматизации склада. Ключевые выводы:
- Прямое API быстрее и проще, чем интеграция через 1С;
- Оффлайн-режим с очередью операций — обязателен для реальных складов;
- Начните с одного сценария (инвентаризация), затем добавляйте приёмку, отгрузку, перемещение;
- Используйте готовые решения (Mertech S40), если у вас нет команды Android-разработчиков;
- Учитывайте специфику рынка: для Беларуси — стабильность связи и ЕАЭС-маркировка, для России — Честный ЗНАК и ЭДО.
Нужна помощь с настройкой интеграции ТСД с МойСклад? Свяжитесь с нами — мы подберём оборудование, настроим приложение и запустим интеграцию под ключ за 1–2 недели.