МойСклад JSON API 1.2: Создать покупателя и заказ

Сценарий из mcp-everything. Актуально на 2026-10-25.

Заказ из интернет-магазина: найти или создать контрагента, затем создать заказ с позициями и резервом.

  1. Найди контрагента: GET /api/remap/1.2/entity/counterparty?search=... (или filter по inn, phone, email).
  2. Если не найден — создай: POST /api/remap/1.2/entity/counterparty (обязательно только name).
  3. Создай заказ: POST /api/remap/1.2/entity/customerorder с organization и agent (ссылки в формате meta) и массивом positions (quantity, price, assortment.meta, reserve).
  4. Позиций в одном запросе — не больше 1000; дальше добавляй через ресурс позиций заказа.
curl --compressed -X POST \
  "https://api.moysklad.ru/api/remap/1.2/entity/counterparty" \
  -H "Authorization: Basic <Credentials>" \
  -H "Accept-Encoding: gzip" \
  -H "Content-Type: application/json" \
  -d '{"name": "ООО Радуга", "inn": "125152124152", "email": "raduga@stroi.ru"}'

Базовые URL

Авторизация

Тип: Bearer-токен

Два способа: Basic Auth (заголовок Authorization: Basic с логин:пароль в Base64) или токен доступа (Authorization: Bearer <AccessToken>). Токен пользователя выдаёт POST /api/remap/1.2/security/token; для решений из маркетплейса используется токен решения. Лимит запросов зависит от способа: токены решений расходуют лимит медленнее, чем логин/пароль и токен пользователя.

Методы сценария

GET /api/remap/1.2/entity/counterparty — Список контрагентов

Документация: https://dev.moysklad.ru/doc/api/remap/1.2/#/dictionaries/counterparty#2-kontragent

Параметр Где Тип Обяз. Описание
limit query integer нет До 1000
offset query integer нет Отступ
search query string нет Контекстный поиск по полям
filter query string нет Фильтр по полям, например inn, phone, email
async query boolean нет Асинхронная выгрузка

POST /api/remap/1.2/entity/counterparty — Создание контрагента

Документация: https://dev.moysklad.ru/doc/api/remap/1.2/#/dictionaries/counterparty#2-kontragent

Параметр Где Тип Обяз. Описание
name body string да Наименование
inn body string нет ИНН
kpp body string нет КПП
legalTitle body string нет Полное наименование
legalAddress body string нет Юридический адрес
email body string нет Email
phone body string нет Телефон
tags body array нет Группы (теги)
externalCode body string нет Внешний код

POST /api/remap/1.2/entity/customerorder — Создание заказа покупателя

Документация: https://dev.moysklad.ru/doc/api/remap/1.2/#/documents/customerOrder#2-zakaz-pokupatelya

Параметр Где Тип Обяз. Описание
organization.meta body object да Ваше юрлицо
agent.meta body object да Контрагент-покупатель
positions[].assortment.meta body object нет Товар, услуга или модификация
positions[].quantity body number нет Количество
positions[].price body number нет Цена в копейках
positions[].discount body number нет Скидка, %
positions[].vat body integer нет НДС, %
positions[].reserve body number нет Резерв
store.meta body object нет Склад
state.meta body object нет Статус заказа
name body string нет Номер заказа
moment body string нет Дата документа

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://dev.moysklad.ru/doc/api/remap/1.2/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/moysklad.md