REST-сервис синхронизации данных
Содержание |
Доступные REST-ресурсы
С помощью REST-сервиса синхронизации данных МойСклад может обмениваться с внешними сервисами любыми данными, хранящимися в базе данных компании-подписчика. В приведенной ниже таблице описаны адреса REST-ресурсов и параметры для них:
| Назначение | Метод | Адрес | Тело запроса | Результат |
|---|---|---|---|---|
| Запрос объекта типа type с идентификатором id | GET | /ms/xml/{type}/{id} | Отсутствует | Код 200 и объект типа type, если объект найден, либо код 404 и пустой ответ, если объект не найден |
| Создание нового или обновление существующего объекта типа type | PUT | /ms/xml/{type} | Объект типа type | Объект типа type |
| Удаление | DELETE | /ms/xml/{type}/{id} | Отсутствует | Код 200 в случае успешного завершения операции и код 404, если объект типа type с идентификатором id не найден |
| Запрос списка объектов типа type | GET | /ms/xml/{type}/list | Отсутствует | Код 200 и коллекция объектов типа type |
| Обновление или создание объектов типа type | PUT | /ms/xml/{type}/list/update | Коллекция объектов типа type | Код 200 и коллекция идентификаторов созданных или обновленных объектов типа type |
| Удаление коллекции объектов типа type | POST | /ms/xml/{type}/list/delete | Коллекция идентификаторов | Код 200 и коллекция идентификаторов успешно удаленных объектов |
Для всех перечисленных сервисов базовым адресом является: https://online.moysklad.ru/exchange/rest
Например, адрес ресурса для получения (метод GET) или удаления (метод DELETE) приемки с идентификатором HHfndjsweuj6643nbf будет выглядеть так: https://online.moysklad.ru/exchange/rest/ms/xml/Supply/HHfndjsweuj6643nbf
В описании использованы подстановки в фигурных скобках. Для обращения к соответствующему сервису необходимо заменить строку вида {type} на название типа данных, а строку вида {id} на идентификатор объекта, если это необходимо для вызова данного сервиса.
Типы данных, доступные к обмену по REST
Допустимые значения для строки {type}:
| Справочники | |
|---|---|
| Uom | единица измерения |
| Good | товар |
| GoodFolder | папка товаров и услуг |
| Service | услуга |
| Agent | папка контрагентов |
| Company | компания |
| MyCompany | организация |
| Person | частное лицо |
| Employee | сотрудник |
| Country | страна |
| Consignment | серия |
| Currency | валюта |
| ProcessingPlanFolder | папка технологических карт |
| ProcessingPlan | технологическая карта |
| Contract | контракт |
| Project | проект |
| Gtd | ГТД |
| Thing | серийный номер |
| LossReason | основание списания |
| EnterReason | основание оприходования |
| CustomEntity | элемент пользовательского справочника |
| Документы | |
|---|---|
| Supply | приемка |
| Demand | отгрузка |
| Loss | списание |
| Enter | оприходование |
| SalesReturn | возврат покупателя |
| PurchaseReturn | возврат поставщику |
| CustomerOrder | заказ покупателя |
| PurchaseOrder | заказ поставщику |
| InternalOrder | внутренний заказ |
| ProcessingOrder | заказ на технологическую операцию |
| Processing | технологическая операция |
| Move | перемещение |
| Inventory | инвентаризация |
| CashIn | кассовый приход |
| CashOut | кассовая выплата |
| PaymentIn | безналичный приход |
| PaymentOut | безналичная выплата |
Ограничения
Идентификаторы ограничены длиной 32 символа.
Большинство текстовых полей ограничено длиной 255 символов.
Поле 'Описание' (description) ограничено длиной 4096 символов.
Схема данных
Сервисы поддерживают обмен данными в формате XML, согласно схемы обмена данными сервиса МойСклад exchange-1.4.0-1.xsd.
Коллекции объектов и идентификаторов должны передаваться в теге <collection></collection>. Например:
<?xml version="1.0" encoding="UTF-8"?> <collection> <id>8f3m688db546</id> <id>22h346snfrfr</id> </collection>
Фильтрация
При запросе коллекций объектов может применяться фильтрация данных. Описание параметров фильтрации располагается на странице: Фильтрация данных в REST-сервисе.
Ограничение доступа
Для работы с перечисленными сервисами требуется BASIC-авторизация. Пользователь, с именем и паролем которого будет происходить обращение к сервису, должен быть наделен правами на работу в административном разделе обмена данными. Для этого необходимо внести пользователя в стандартную группу "Возможность производить обмен данными".
Кириллическое имя пользователя и пароль при входе с BASIC-авторизацией работать не будут, так как в этом случае UTF-8 строка с именем и паролем интерпретируются как ASCII. Чтобы обойти это ограничение BASIC-авторизации, вы можете использовать вместо имени пользователя почтовый адрес, указанный при регистрации учетной записи. Если почтовый адрес указан в более чем одной учетной записи пользователя, то в качестве логина его использовать уже нельзя.
Пример загрузки заказа покупателя через REST API
Обновления
Вы можете всегда увидеть описание последних изменений в API в специальном форуме - https://moysklad.zendesk.com/forums/20732298-api При необходимости Вы можете подписаться на рассылку новых статей из этого форума и получать информацию об обновлениях по почте.