С чего начать работу с СР
Эта страница описывает работу со складской распиской (СР).
Порядок первых шагов
Ознакомьтесь со статьями про авторизацию, порядок документооборота и устройство документооборота СР.
Определите роли, в которых выступает ваша организация: экспедитор формирует, подписывает и отправляет СР, заказчик получает готовый документ (подробнее — Роли организации).
Подготовьте интеграционное решение и соберите справочник ящиков с API-ключами и доступами пользователей (подробнее — Подготовка интеграционного решения).
Научитесь создавать титул экспедитора (подробнее — Создание документов).
Реализуйте чтение ленты событий по каждому ящику методом GetNewEvents (V8) с фильтром
typeNamedId = LogisticsWarehouseReceipt.Организация-экспедитор с помощью ленты событий может убедиться, что титул СР отправлен;
Организация-заказчик услуг с помощью ленты событий сможет увидеть в своем ящике новую СР.
В событиях определяйте титул и связывайте его с подписями по идентификатору
ParentEntityId(подробнее — Обработка идентификаторов).Заведите соответствие «УИД —
MessageId» и группируйте по нему сущности расписки.Реализуйте обработку титула экспедитора (подробнее — Обработка потоков документов).
Реализуйте обработку статусов регистрации документа в ГИС ЭПД и событий об ошибках.
Как устроен документооборот СР
СР состоит из одного титула — титула экспедитора. Экспедитор формирует и подписывает его, когда принимает груз на складское хранение. Ответный титул от заказчика транспортно-экспедиционных услуг не требуется.
Роли организации
Каждая организация-участник документооборота СР играет свою роль в этом документообороте. От роли зависит, какие титулы организация подписывает и какой поток документов у нее появится.
Роль |
Участие в документообороте |
Что подписывает |
|---|---|---|
Экспедитор |
Участвует. Принимает груз на складское хранение, формирует и отправляет складскую расписку заказчику |
титул экспедитора |
Заказчик транспортно-экспедиционных услуг |
Участвует. Получает подписанную складскую расписку |
— |
Стадии
Участники документооборота оформляют складскую расписку так:
титул экспедитора — экспедитор принял груз на складское хранение и направил расписку заказчику.
Прием на хранение
Экспедитор принимает груз на складское хранение, подписывает титул экспедитора и отправляет его заказчику. Данные титула направляются в ГИС ЭПД.
В результате участники документооборота получают титул:
заказчик получает титул экспедитора с подписью экспедитора.
Подготовка интеграционного решения
Чтобы настроить интеграцию для обмена СР, нужно для каждой организации-участника документооборота получить следующие данные:
Идентификатор ящика
BoxId: его можно получить методом GetMyOrganizations. Этот идентификатор постоянный для каждого ящика и не изменяется.API-ключ.
Лицензия, купленная для этого ящика.
Учетная запись пользователя с доступом в ящик и возможностью авторизации по OIDC. Назначьте пользователю доступ к отдельным наборам ящиков организаций, а не ко всем ящикам сразу, или заведите техническую учетную запись.
Спроектируйте интеграционное решение следующим образом:
Заведите справочник организаций и их API-ключей.
Создайте единственную техническую учетную запись пользователя с доступом ко всем ящикам или реализуйте добавление и удаление пользователей, например, на случай найма/увольнения сотрудника. Подробнее — на странице Работа с сотрудниками.
Реализуйте обновление токена доступа с помощью refresh_token.
Примечание
При обновлении токена доступа с помощью
refresh_tokenвы получите новую пару токенов, и повторное подтверждение авторизации со стороны пользователя не потребуется. Подтверждение авторизации запрашивается только один раз — при первом выпуске токена. Подробнее — на странице Авторизация.
Создание документов
Чтобы создать СР:
Изучите формат складской расписки, утвержденный приказом ФНС России от 28.04.2026 № ЕД-1-26/277@, и требования к XML-файлам.
Сформируйте XML-файл титула в вашей учетной системе; подробнее — на странице Работа со складскими расписками.
При создании учитывайте тип, версию и функцию каждого титула. Титул формирует экспедитор.
Тип, версия и функция
Каждый титул СР в Диадоке имеет свой набор параметров, определяющих его поведение, — тип документа, версию и функцию. Отправитель документа задает их при создании документа в структуре DocumentAttachment. Получить эти значения для существующего документа можно из структуры Document.
Параметр |
Описание |
Доступные значения |
|---|---|---|
|
Тип документа |
|
|
Функция титула в документообороте |
|
|
Версия документа |
|
Обработка идентификаторов
MessageId и EntityId
Для работы с СР в ящике организации нужны два идентификатора — MessageId и EntityId. Это идентификаторы документа в Диадоке. С помощью этих идентификаторов можно найти документ в ящике или выполнить другие действия с документом.
Каждое сообщение Message — отдельный пакет с набором сущностей Entity. Сущностью может быть документ, подпись, машиночитаемая доверенность (МЧД) и другие объекты.
Идентификатор сообщения MessageId идентифицирует сообщение, а не отдельный документ. После отправки сообщения сохраните его: по нему можно получить все данные сообщения методом GetMessage (V6).
Идентификаторы сущности EntityId уникальны в каждом ящике. У каждого получателя при появлении новой сущности возникают собственные события. События из ящика отправителя в ящик получателя не передаются.
Титул экспедитора создается как новое сообщение. Сущности подписи и статусов ссылаются на титул через идентификатор ParentEntityId.
Для входящей складской расписки заказчик получает подписанный титул и события о связанных сущностях. Для обработки документа связывайте подписи и статусы с титулом по ParentEntityId.
kl-id и mt-id
Для работы с СР в учетных системах отслеживайте идентификаторы kl-id, mt-id и УИД_СкладР:
kl-id— внутренний идентификатор документа;mt-id— уникальный идентификатор складской расписки. Он связывает события и документы расписки в Диадоке и ГИС ЭПД. ГИС ЭПД присваивает его после регистрации титула;УИД_СкладР— тот же уникальный идентификатор в XML-файле титула по формату ФНС.
Они хранятся в Диадоке как пользовательские данные документа — в поле DocumentInfo.CustomData сущности документа, которая в свою очередь входит в состав сообщения Message. Поле CustomData содержит список тегов CustomDataItem с полями Key и Value. У документов одной складской расписки в Key Диадок записывает kl-id (для исходящих документов) и mt-id (для входящих документов).
После регистрации титула в ГИС ЭПД в ленте появится событие с обновленным состоянием документа. УИД_СкладР будет записан в DocumentInfo.CustomData в теге с Key = "mt-id". Подробнее о статусах ГИС ЭПД — в разделе Информация о статусе обработки.
Создайте соответствие «УИД — MessageId». По УИД_СкладР можно определить, к какой записи в учетной системе относится обновление.
При замене складской расписки укажите УИД заменяемого документа в элементе УИД_ПредСкладР. Если ГИС ЭПД вернет ответ об ошибке, экспедитор формирует новую складскую расписку с исправлениями и заполняет элементы ИспрФО, ИдИсхФайл и УИД_СкладР.
Подробнее про возможные теги СР — в разделе Пользовательские данные (теги).
Хранение идентификаторов
Для обработки СР сохраните в учетной системе идентификаторы:
Что хранить |
Для чего |
|---|---|
|
Читать нужную ленту событий и получать документы |
|
Получать титул и его статусы |
|
Скачать XML и связать подпись или статус с титулом |
|
Связать статусы ГИС ЭПД с СР в учетной системе |
|
Связать события и документы одной расписки. При исправлении укажите это значение в новой складской расписке |
|
Продолжить чтение ленты без пропусков |
Сохраните идентификатор mt-id и используйте его для группировки сущностей и событий расписки.
Статусы обработки в ГИС ЭПД
Статус обработки титула во внешнем документообороте хранится в сущности Entity с полями:
EntityType = Attachment,AttachmentType = OuterDocflow.
Поле Entity.OuterDocflow содержит структуру OuterDocflowInfo. В ней хранятся:
DocflowNamedId— идентификатор внешнего документооборота;Status— статус обработки титула;дополнительные данные в
Status.Details, в том числеmt-idиkl-id.
Если обработка завершилась с ошибкой, Entity.OuterDocflow.Status.Type будет иметь значение Error. Код и текст ошибки можно найти в элементах Entity.OuterDocflow.Status.Details.
Обработка потоков документов
Исходящий поток: экспедитор
Экспедитор принимает груз на складское хранение, формирует, подписывает и отправляет заказчику титул экспедитора.
Настройте обработку так:
Сохраните идентификатор сообщения
MessageIdи идентификатор сущностиEntityId. По идентификатору сообщенияMessageIdметод GetMessage (V6) возвращает сообщение и статусы обработки титула в полеEntity.OuterDocflow. Чтобы обновить статусы вручную, вызовите этот метод для каждого сохраненного идентификатораMessageId.Читайте ленту событий. Статус регистрации складской расписки в ГИС ЭПД будет передан в сущности
OuterDocflow.Связывайте статус с титулом по
ParentEntityId. Этот идентификатор указывает на родительскую сущность в том же сообщении.После успешной регистрации прочитайте в деталях статуса
mt-idи сохраните его в учетной системе. Как прочитатьmt-id, описано в разделе kl-id и mt-id.Если статус имеет тип
Error, обработайте код и текст ошибки изStatus.Details.
Необязательно отслеживать все сущности: определите события, которые важны для вашей организации.
Входящий поток: заказчик
Заказчик получает подписанный титул экспедитора от экспедитора. Ответный титул не требуется.
Настройте обработку так:
В ленте событий определяйте появление входящей складской расписки.
Получите сообщение по
MessageIdметодом GetMessage (V6), распознайте титул и связанную с ним подпись.Сохраняйте
MessageId, УИД складской расписки и связь с документом в учетной системе.Вызовите метод GetEntityContent (V4) и загрузите XML-файл титула (необязательно).
При необходимости отслеживайте статусы обработки документа в ГИС ЭПД. Связывайте статусы с титулом по
ParentEntityId.