При загрузке XML электронной транспортной накладной в Диадок может появиться ошибка:
Unable to resolve recipient box
Дословно — системе не удалось определить ящик получателя.
На практике проблема обычно возникает не в грузе, весе или адресе, а в идентификаторе участника электронного документооборота, по которому Диадок должен понять, какому ящику направить документ.
При этом одного ИНН организации недостаточно.
В открытой документации Диадока отдельной расшифровки именно этой англоязычной ошибки нет. Но API Диадока различает несколько идентификаторов организации — в частности BoxId и FnsParticipantId — и позволяет искать организацию отдельно по каждому из них. Поэтому при такой ошибке первым делом стоит проверять данные получателя и дополнительных получателей документа. Контур Разработчик
Почему возникает Unable to resolve recipient box
Для отправки электронного документа системе нужно не только знать, какая организация указана в ЭТрН, но и определить её конкретный электронный ящик.
Например, у организации в Диадоке одновременно могут существовать:
ИНН и КПП — реквизиты юридического лица;
FnsParticipantId — идентификатор участника ЭДО;
BoxId — идентификатор ящика в Диадоке.
Это разные значения. Диадок хранит FnsParticipantId отдельно от списка Boxes, в котором находится BoxId. Контур Разработчик
Поэтому ситуация, когда ИНН в XML правильный, ещё не означает, что Диадок сможет определить получателя.
Сначала найдите, какого получателя не удаётся определить
Если ошибка появилась после добавления наблюдателя, начинайте проверку именно с него.
Для ЭТрН Диадок предусматривает дополнительных получателей. В Т1 они передаются через OtherRecipientIds в упрощённом XML или через элемент ИдПолИной в готовом XML титула. Контур Разработчик
Откройте XML и найдите:
<ИдПолИной>...</ИдПолИной>
Если таких строк несколько, проверить нужно каждую.
Например:
<ИдПолИной>...</ИдПолИной>
<ИдПолИной>...</ИдПолИной>
Если ошибка появилась сразу после того, как в документ добавили ещё одну организацию-наблюдателя, это сильный признак того, что проблема находится именно здесь.
Не подставляйте ИНН вместо ID участника
Одна из возможных ошибок — в поле идентификатора дополнительного получателя указали:
7449156623
то есть обычный ИНН.
ИНН идентифицирует организацию как налогоплательщика, но сам по себе не является адресом её ящика ЭДО.
Диадок позволяет искать организацию отдельно по inn, boxId или fnsParticipantId, что прямо показывает: это разные идентификаторы. Контур Разработчик
Поэтому нельзя:
взять ИНН → добавить к нему префикс → получить ID самостоятельно.
Идентификатор должен реально существовать у оператора ЭДО.
Что такое FnsParticipantId
FnsParticipantId — зарегистрированный идентификатор участника электронного документооборота.
Например, у организации в Диадоке он может иметь вид:
2BM-1839264655-732644841-202407101103418496883
Это пример из документации Диадока, а не значение, которое нужно копировать в свой документ.
Первые три символа идентификатора содержат код оператора ЭДО, к которому подключена организация. Контур Разработчик
Но важно не путать:
FnsParticipantId ≠ BoxId.
BoxId в Диадоке обычно имеет другую структуру и относится непосредственно к ящику организации. Контур Разработчик
Почему правильный ИНН может не помочь
У одного ИНН могут быть подразделения или организации с разными КПП.
При поиске только по ИНН Диадок может не получить однозначный результат. В документации метода GetOrganization прямо указано: если по ИНН найдено несколько организаций, нужно дополнительно учитывать КПП или пользоваться специальным поиском организаций по ИНН/КПП. Контур Разработчик
Поэтому проверьте не только:
ИНН 7700000000
но и:
КПП 770001001
Особенно это важно для крупных компаний с филиалами и обособленными подразделениями.
Отдельно проверьте роуминг
Получатель или наблюдатель может работать не в Диадоке, а через другого оператора ЭДО.
Это не означает, что его нельзя указать в ЭТрН.
Диадок предусматривает поиск участников в роуминге и отдельный механизм получения или создания роуминговой организации по FnsParticipantId. В данных организации также есть признак IsRoaming. Контур Разработчик
Поэтому если организация:
работает через другого оператора;
имеет ID с непривычным префиксом;
не находится среди обычных контрагентов Диадока,
не нужно заменять её ID на придуманный 2BM.
Нужно получить реальный идентификатор участника ЭДО.
Что проверить в XML по порядку
Если видите Unable to resolve recipient box, проверьте:
- Есть ли в XML элементы
<ИдПолИной>. - Нужны ли вообще эти дополнительные получатели.
- Не стоит ли там обычный ИНН вместо идентификатора ЭДО.
- Не придуман ли идентификатор вручную.
- Совпадают ли ИНН и КПП с нужной организацией или филиалом.
- Действительно ли полученный ID принадлежит именно этому контрагенту.
- Не работает ли организация через другого оператора и роуминг.
- Если дополнительных получателей несколько — временно проверьте каждый идентификатор отдельно.
- Проверьте основного грузоотправителя, грузополучателя и перевозчика: у них тоже должны быть корректно определены участники ЭДО.
- Если XML формировался вручную — проверьте также имя файла и признак наличия дополнительных получателей.
Последний пункт важен: в формате имени файла ЭТрН предусмотрен специальный признак W, показывающий, содержит ли документ идентификаторы дополнительных получателей. Контур Разработчик
Если наблюдатель не нужен
Иногда ошибка появляется потому, что дополнительный получатель был добавлен «на всякий случай».
Если организация не должна получать ЭТрН как наблюдатель, правильнее удалить её из списка дополнительных получателей, а не пытаться подобрать случайный ID, который система примет.
Не следует оставлять:
<ИдПолИной></ИдПолИной>
или подставлять фиктивное значение.
В XML должны оставаться только реальные участники и получатели документа.
Если наблюдатель нужен, но его ID неизвестен
Тогда порядок действий простой.
Сначала найдите организацию у оператора ЭДО по ИНН и КПП.
Затем получите её действующий идентификатор участника или ящика, который требуется используемым способом формирования ЭТрН.
Если контрагент работает через другого оператора, уточните его идентификатор ЭДО и возможность роуминга.
И только после этого вносите значение в XML.
Для Диадока сведения об организации можно получать по boxId, fnsParticipantId, ИНН и КПП. Контур Разработчик
Важно: ИдПолИной не стоит заполнять «по образцу»
Есть ещё один нюанс.
В документации Диадока в разных сценариях встречаются разные представления идентификаторов. Например, для смены грузополучателя в Т7 прямо указано, что в ИдПолИной передаётся fnsParticipantId новой организации. В примере разбора Т1 дополнительный получатель также отображается в OtherRecipientIds. Контур Разработчик
Поэтому самый опасный способ исправления ошибки — найти чужой XML в интернете и просто скопировать из него похожую строку.
ID должен относиться к вашей конкретной организации-получателю.
Как проверить документ в генераторе ЭТрН
Если XML уже сформирован, его можно открыть в нашем сервисе:
В разделе «Наблюдатели» проверьте организации и указанные для них идентификаторы.
Если известен только ИНН, не нужно придумывать идентификатор самостоятельно. Сначала получите ID у оператора ЭДО.
После исправления снова сформируйте XML и повторите загрузку.
Генератор помогает подготовить и проверить структуру документа, но не является оператором ИС ЭПД и не может подтвердить существование чужого ящика ЭДО без данных оператора.
Короткий пример
Было:
<ИдПолИной>7449156623</ИдПолИной>
Здесь в качестве идентификатора дополнительного получателя фактически указан ИНН.
Это повод проверить значение.
После получения действительного ID у оператора в XML должен использоваться именно тот идентификатор, который относится к нужной организации и поддерживается системой обмена.
Не нужно пытаться превратить:
7449156623
в:
2BM-7449156623-...
самостоятельно.
Такого участника может вообще не существовать.
Если ошибка остаётся
Если идентификаторы проверены, но Диадок всё равно пишет Unable to resolve recipient box, для диагностики уже нужны:
сам XML;
точное сообщение об ошибке;
какой участник добавляется;
его ИНН/КПП;
оператор ЭДО;
идентификатор, который передан в XML.
По этим данным можно определить, проблема находится в наблюдателе, основном получателе, роуминге либо структуре самого файла.