что такое boxid в контексте эдо

Идентификатор участника ЭДО

Идентификатор, или ID, — это уникальный номер. Идентификатор участника ЭДО оператор электронного документооборота присваивает пользователям системы. Идентификационный номер выдается организации по ИНН-КПП. Компании с одинаковым ИНН и разными КПП будут работать с электронными документами под своими идентификаторами.

Что такое идентификатор

Идентификатор участника ЭДО состоит из комбинации цифр и латинских букв разного регистра.

Первые три символа в номере — это ID оператора электронного документооборота. Набор последующих знаков помогает распознавать пользователей ЭДО.

Как определить оператора ЭДО по идентификатору? Если вы хотите узнать, какой провайдер у контрагента, обратите внимание на первую часть идентификационного номера. Найдите на сайте ФНС России список доверенных операторов юридически значимого электронного документооборота. В списке приведены основные сведения об операторах, в том числе идентификаторы ОЭД. Зная идентификатор участника ЭДО, вы легко определите оператора по первым трем символам.

Так, ID участника ЭДО для клиентов оператора СКБ Контур будет начинаться с 2ВМ.

Зачем нужен идентификатор

Для обмена счетами-фактурами и другими формализованными документами организации необходимо получить идентификатор участника ЭДО. В xml-файлах электронных документов должны быть заполнены поля с номерами отправителя и получателя. Использование уникальных кодов дает возможность ФНС и операторам ЭДО определить организацию в своих системах.

Также идентификаторы участников нужны для настройки роуминга между организациями — клиентами разных операторов ЭДО. В процессе подключения оператору понадобится узнать идентификатор контрагента, с которым абонент хочет наладить связь.

Как получить идентификатор

При регистрации в системе ЭДО новый пользователь подписывает заявление об участии в электронном документообороте. В Контур.Диадоке оно создается, когда организация отправляет первый формализованный документ. Пользователю достаточно проверить реквизиты и подтвердить свое намерение подать заявление.

На основе заявления об ЭДО оператор формирует информационное сообщение, в котором и указывает уникальный код участника — идентификатор ЭДО. Вместе с реквизитами организации данные передаются в налоговую, и новый пользователь может начать работу с электронными формализованными документами.

Где посмотреть в Диадоке

Чтобы узнать идентификатор участника ЭДО в Контур.Диадоке, зайдите в веб-интерфейс сервиса. Откройте меню «Настройки». Вы сразу же увидите идентификатор участника ЭДО (GUID).

что такое boxid в контексте эдо. Смотреть фото что такое boxid в контексте эдо. Смотреть картинку что такое boxid в контексте эдо. Картинка про что такое boxid в контексте эдо. Фото что такое boxid в контексте эдо

Если вы перейдете в раздел «Реквизиты организации», тоже сможете посмотреть идентификационный номер своей организации.

что такое boxid в контексте эдо. Смотреть фото что такое boxid в контексте эдо. Смотреть картинку что такое boxid в контексте эдо. Картинка про что такое boxid в контексте эдо. Фото что такое boxid в контексте эдо

Как узнать идентификатор ЭДО контрагента

Откройте вкладку «Контрагенты» в веб-интерфейсе Контур.Диадока. Через поиск найдите бизнес-партнера, идентификатор которого вы хотите узнать. Нажмите на активную ссылку в наименовании организации. Откроется новое окно в виде карточки контрагента. Кликните на ссылку со словом ID в первой строчке.

что такое boxid в контексте эдо. Смотреть фото что такое boxid в контексте эдо. Смотреть картинку что такое boxid в контексте эдо. Картинка про что такое boxid в контексте эдо. Фото что такое boxid в контексте эдо

Подключиться к Диадоку, чтобы использовать все преимущества ЭДО

Источник

Доставка

Источник данных

Коннектор может работать с четырьмя типами источников файлов:

Настройка серверов включает в себя специальные параметры (например, тип подключения, тип авторизации, путь к рабочей папке) и общие параметры для каждого типа источника файлов: группировка документов в пакеты и их связывание.

Чтобы отправить документы в одном письме, нужно сгруппировать их любым из способов:

Ниже на схемах приведены примеры группировки файлов в письма при установке уровня вложенности «0» или «1».

Схема 1. Пример группировки файлов в письма с уровнем вложенности «0».

что такое boxid в контексте эдо. Смотреть фото что такое boxid в контексте эдо. Смотреть картинку что такое boxid в контексте эдо. Картинка про что такое boxid в контексте эдо. Фото что такое boxid в контексте эдо

Схема 2. Пример группировки файлов в письма с уровнем вложенности «1».

что такое boxid в контексте эдо. Смотреть фото что такое boxid в контексте эдо. Смотреть картинку что такое boxid в контексте эдо. Картинка про что такое boxid в контексте эдо. Фото что такое boxid в контексте эдо

Типы и форматы документов

Коннектор позволяет отправлять любые типы документов, которые поддерживает Диадок.

Основные типы документов:

Поддерживаемые форматы формализованных документов, которые закреплены законодательством: 820@, 736@, 551@, 552@.

Некоторые неформализованные документы требуют дополнительных данных, таких как: дата, номер, сумма. Их можно указать в имени исходного файла документа.

Если учетная система не может выгрузить счета-фактуры, накладные, акты или УПД в формате установленном ФНС или в формате, который необходим для отправки в электронном виде (произвольный PDF или XML), то можно воспользоваться функцией преобразования документов. Поддерживаемые форматы исходных файлов, для которых применима функция преобразования:

Возможен вариант сложного преобразования, когда из одного файла требуется сформировать несколько файлов.

Эти настройки выполняются в индивидуальном порядке через менеджера.

Загрузка документов в Диадок

Для отправки документа потребуется задать правила маршрутизации для определения:

Исходящие для последующей отправки и подписи.

Подписать и оправить документы получателям. Потребуется обязательная авторизация пользователя в коннекторе под сертификатом.

Получатель документа может быть определен по:

При маршрутизации по паре ИНН-КПП применяется следующий порядок поиска организации в Диадоке:

Поиск по КПП одновременно происходит как по реквизитам ящика организации, так и по реквизитам подразделений ящика организации.

Отправка документов в роуминговые ящики осуществляется в головное подразделение.

Исключение составляют документы с типом «Приглашение». Для них нет проверок на наличие получателя в списке контрагентов.

Более гибкие настройки по маршрутизации документов представляет «файл маршрутизации». Это текстовый файл, который содержит строки, состоящие из пары ключ–значение, разделенные пробелами. Кодировка файла: UTF-8 или UTF-8 (без BOM). Если указан ключ, то должно быть указано значение.

Файл маршрутизации определяется по имени, которое удовлетворяет заданному регулярному выражению (подробнее смотрите в разделе «Использование регулярных выражений» ). Файл маршрутизации не должен располагаться в корне рабочей папки. Его можно разместить в подпапке вместе с отправляемыми документами или на уровень выше.

Источник

GetDocuments¶

Элементы в списке DocumentList.Documents идут в порядке возрастания меток времени (поля Document.TimestampTicks). В поле DocumentList.TotalCount указывается общее количество документов, удовлетворяющих запросу.

В массиве DocumentList.Documents содержится не более 1000 элементов; для получения остальных документов нужно вызывать метод GetDocuments с теми же параметрами, меняя значение afterIndexKey.

Первая часть этой строки задает тип документа и может следующие значения:

Возможные варианты ¶

ВариантОписаниеПримечание
Строковый идентификатор любого доступного в организации типа (см. поле TypeNamedId )Например, Invoice, XmlAcceptanceCertificate, Nonformalized и т.п.
AnyАггрегированный запрос для всех документов в ящике без учета по типу
AnyInvoiceDocumentTypeАггрегированный запрос только для типов Invoice, InvoiceRevision, InvoiceCorrection, InvoiceCorrectionRevisionболее не поддерживается и не рекомендуется к использованию
AnyBilateralDocumentTypeАггрегированный запрос только для типов Nonformalized, Torg12, AcceptanceCertificate, XmlTorg12, XmlAcceptanceCertificate, TrustConnectionRequest, PriceList, PriceListAgreement, CertificateRegistry, ReconciliationAct, Contract, Torg13более не поддерживается и не рекомендуется к использованию
AnyUnilateralDocumentTypeАггрегированный запрос только для типов ProformaInvoice, ServiceDetailsболее не поддерживается и не рекомендуется к использованию

Строка DocumentClass задает класс документа и может принимать следующие значения:

Возможные варианты ¶

ВариантОписание
InboundТолько входящие
OutboundТолько исходящие
InternalТолько внутренние
ProxyТолько документы, переданные через промежуточного получателя

Строка DocumentStatus задает статус документа и может принимать следующие значения:

Возможные варианты ¶

ВариантОписание
Пустое значениеЛюбой документ указанного класса Class
NotReadДокумент не прочитан
NoRecipientSignatureRequestДокумент без запроса ответной подписи
WaitingForRecipientSignatureДокумент в ожидании ответной подписи
WithRecipientSignatureДокумент с ответной подписью
WithSenderSignatureДокумент с подписью отправителя
RecipientSignatureRequestRejectedДокумент с отказом от формирования ответной подписи
WaitingForSenderSignatureДокумент, требующий подписания и отправки
InvalidSenderSignatureДокумент с невалидной подписью отправителя, требующий повторного подписания и отправки
InvalidRecipientSignatureДокумент с невалидной подписью получателя, требующий повторного подписания и отправки
ApprovedСогласованный документ
DisapprovedДокумент с отказом согласования
WaitingForResolutionДокумент, находящийся на согласовании или подписи
SignatureRequestRejectedДокумент с отказом в запросе подписи сотруднику
FinishedДокумент с завершенным документооборотом
HaveToCreateReceiptТребуется подписать извещение о получении
NotFinishedДокумент с незавершенным Документооборотом
InvoiceAmendmentRequestedДокумент, по которому было запрошено уточнение
RevocationIsRequestedByMeДокумент, по которому было запрошено аннулирование
RequestsMyRevocationДокумент, по которому контрагент запросил аннулирование
RevocationAcceptedАннулированный документ
RevocationRejectedДокумент, запрос на аннулирование которого был отклонен
RevocationApprovedДокумент, запрос на аннулирование которого был согласован
RevocationDisapprovedДокумент с отказом согласования запроса на аннулирование
WaitingForRevocationApprovementДокумент, находящийся на согласовании запроса аннулирования
NotRevokedНеаннулированный документ
WaitingForProxySignatureДокумент в ожидании подписи промежуточного получателя
WithProxySignatureДокумент с подписью промежуточного получателя
InvalidProxySignatureДокумент с невалидной подписью промежуточного получателя, требующий повторного подписания и отправки
ProxySignatureRejectedДокумент с отказом от формирования подписи промежуточным получателем
WaitingForInvoiceReceiptДокумент в ожидании получения извещения о получении счета-фактуры
WaitingForReceiptДокумент в ожидании получения извещения о получении
RequestsMySignatureДокумент, по которому контрагент запросил подпись
RoamingNotificationErrorДокумент с ошибкой доставки в роуминге

Примеры строки filterCategory:

Необязательный параметр counteragentBoxId позволяет ограничить выдачу только теми документами, у которых идентификатор ящика контрагента совпадает с counteragentBoxId.

Необязательные параметры timestampFromTicks и timestampToTicks позволяют задать интервал времени, в котором осуществляется поиск.

Необязательные параметры fromDocumentDate и toDocumentDate также позволяют задать интервал времени, в котором осуществляется поиск.

Однако при этом фильтрация списка документов производится по дате формирования документа в учетной системе (реквизиту самого документа), а не по метке времени, связанной с загрузкой документа в ящик Диадока.

Если какой-то параметр отсутствует в запросе, то его значение неявно принимается равным +/- бесконечности. В выдачу метода GetDocuments попадают только те документы, у которых заполнен реквизит «Дата документа».

Параметры fromDocumentDate и toDocumentDate задаются в формате ДД.ММ.ГГГГ, то есть представляют собой только даты, а не полноценные метки времени.

Необязательный параметр afterIndexKey позволяет итерироваться по списку документов, удовлетворяющих фильтру.

Если в запросе присутствует параметр afterIndexKey, то список документов в выдаче начинается с документа, следующего за документом, имеющим ключ afterIndexKey (поле Document.IndexKey ).

Cам документ с ключом afterIndexKey в выдачу при этом не попадает. Если данный параметр в запросе отсутствует, то выдается начало списка документов, удовлетворяющих фильтру.

Источник

Где взять BoxId в GUID формате для УПД по 820 приказу? #576

Comments

Edward72 commented Oct 31, 2019

В теле запроса GenerateTitleXml нужно заполнять BoxID продавца и покупателя. Формат требуется GUID. API Диадока позволяет нам получить идентификатор ящика вызовом GetBox. Но в ответе мы получаем идентификатор вида «97be5d3704394d62bf40442dcb2489b8@diadoc.ru», что совсем не похоже на GUID. Вопрос: где брать идентификатор ящика в GUID формате?

The text was updated successfully, but these errors were encountered:

OlgaPetushina commented Nov 1, 2019

Edward72 commented Nov 5, 2019

В части получения идентификатора ящика вы правы. Это я неправильно указал метод, конечно же GetOrganization и далее по списку ящиков получаем их идентификаторы (непонятно только, зачем список, если ящиков всегда один). А вот в части преобразовать самостоятельно можно подискутировать. Да это не сложно, да, я это в итоге так и сделал. Но возникает вопрос о единообразии данных в API Диадока. Почему в одном случае BoxId должен быть такого вида «97be5d3704394d62bf40442dcb2489b8@diadoc.ru», а в другом «97be5d37-0439-4d62-bf40-442dcb2489b8»? Уважаемые разработчики, объясните вашу логику!

OlgaPetushina commented Nov 5, 2019

@Edward72 boxid возвращается в таком виде в целях обратной совместимости. Мы планируем поднять версию метода и возвращать BoxId как guid. Сроков нет пока.

Edward72 commented Nov 5, 2019

Ок. Поясните тогда по списку ящиков. Зачем в структуре Organization ящики представлены в виде списка? Бывают ли ситуации когда их больше одного?

OlgaPetushina commented Nov 5, 2019

Edward72 commented Nov 5, 2019

alogicman commented Nov 5, 2019

Ок. Поясните тогда по списку ящиков. Зачем в структуре Organization ящики представлены в виде списка? Бывают ли ситуации когда их больше одного?

Это опять для обратной совместимости: когда-то давно у одной организации могло быть несколько ящиков. Сейчас понятия организации и ящика фактически смешались, так как их отношение 1:1 — у организации ровно один ящик.

Когда-нибудь мы приведем все в единообразное состояние — везде будет использоваться нормальный boxId, а у организации не будет массива ящиков 🙂

Edward72 commented Nov 6, 2019

никто не ответил. С каким контрагентом мне работать? Если их два, с одинаковым ИНН/КПП?

NataliaShumikhina commented Nov 6, 2019

Никаких противоположных мнений нет. Организация=Ящик=уникальная связка ИНН-КПП-Id участника ЭДО-признак тестовая/роуминговая/реальная

Это всё нормальные ситуации.

Если вы получили в ответе несколько ящиков, то вы сами выбираете, с каким работать:

Edward72 commented Nov 7, 2019

i82 commented Nov 7, 2019

Если вам требуются технические консультации, я могу предложить оплатить платные консультации. Вы будете получать ответ оперативнее с учётом всего вашего контекста от выделенного специалиста. Если это потребуется, обратитесь к вашему менеджеру.

Edward72 commented Feb 13, 2020

Опять про ящики. Есть контрагент. Подразделение ПАО «Ростелеком» ИНН 7707049388 КПП 860143001. GetOrganization ищем по ИНН/КПП, находим, отправляем приглашение. И что? И ничего. А почему? А потому что, этот ящик они когда-то использовали, но потом все поменялось. У них теперь другой ящик. А старый остался висеть, непонятно зачем. А новый ящик где? А внутри ящика другого контрагента, у которого КПП 66854300. Это Макрорегиональный филиал «Урал». Но господа, в договоре с этим контрагентом КПП 66854300 не прописан! У нас есть КПП головы 770545001 и собственно грузополучателя КПП 860143001. Руками конечно все можно настроить, но мы говорим об интеграции. Итак, есть ИНН/КПП головы и грузополучателя. Ищем GetOrganization по ИНН/КПП грузополучателя, находим, приглашаем и тишина. Что дальше? Ок. Ищем только по ИНН. Находим 66 организаций! Куда дальше? Мне что, нужно лепить в программе костыль, где указывать, что в Диадоке работаем через конкретный КПП? Ок. Допустим. Следующий вопрос. В поддержке мне объяснили, что направляя формализованные документы с КПП грузополучателя в ящик филиала «Урал», документы перенаправятся в ящик нашего потребителя. А что делать с неформализованными документами? Куда их слать? На деревню дедушке? Когда наконец логику работы с Диадоком приведут в нормальный вид?

i82 commented Feb 13, 2020

Структуру филиалов каждая компания формирует самостоятельно, как и принимает решения об удалении ящиков. Мы не можем гарантировать работу Ростелекома, информация о том, куда следует отправлять документы вам необходимо согласовать с контрагентом.

Маршрутизация неформализованных документов не производится т.к. Диадок не может определить из контента, куда его требуется смаршрутизировать. Для маршрутизации таких документов нужно явно указывать подразделение получателя при отправке.

Edward72 commented Feb 13, 2020

Речь идет не о структуре филиалов. А о том, что Диадок не позволяет работать с филиалами, не заморачиваясь с той самой структурой филиалов. Мне то какое должно быть дело до их структуры? Сегодня она одна, завтра другая. Есть ИНН/КПП получателя. Все. Больше ничего не должно быть нужно. И слова «Диадок не может», которые звучат из уст разработчиков того самого Диадока, выглядят как минимум неубедительно. Как максисмум: типа, мы тут сделали кое как, пользуйте как хотите и как можете, мы ничего переделывать не будем.

i82 commented Feb 13, 2020

ToDepartmentId в методе отправки.

В апи Диадок предоставляет данные как есть, без дополнительной логической обработки, для более предсказуемого поведения и вашей возможности для гибкой настройки интеграции. Компания Ростелеком проинформирована о том, что выбранное ими решение может быть неудобным для их контрагентов без относительно интерфейса работы с ними.

Edward72 commented Feb 13, 2020

Что еще можно было услышать? Виноваты не мы, виноваты сами пользователи. А наша система самая офигенская, что-то допиливать, изменять в ней нет необходимости. Платите деньги за использование и пользуйте как есть. А сделать элементарное, поиск по ИНН/КПП в своей базе (базе Диадока) в том числе и подразделений ну никак. Еще расскажите мне про «техническую невозможность».

i82 commented Feb 13, 2020

Попрошу вас воздержаться от оценочных суждений.

Это пожелание по доработке тоже зафиксировал, но в ближайшие задачи она не попадёт

Edward72 commented Feb 13, 2020

Ваш запрос в бэклоге. Если вы хотите поднять приоритет, обратитесь к вашему менеджеру, он сможет это сделать

Источник

Как получить счет-фактуру¶

Рассмотрим последовательность действий к функциям интеграторского интерфейса Диадока, которые требуется совершить покупателю при получении счета-фактуры (СФ), корректировочного счета-фактуры (КСФ), исправления счета-фактуры (ИСФ).

Порядок согласно приказу N 14Н¶

Порядок документооборота со стороны Покупателя:

Более подробно о порядке обмена электронными счетами-фактурами между компаниями можно почитать в соответствующем разделе или на сайте

Поиск счета-фактуры¶

Сначала необходимо найти входящие счета-фактуры, которые требуется обработать, для этого нужно воспользоваться методом GetDocuments :

Пример запроса на получение счета-фактуры выглядит следующим образом:

В теле ответа вернется список документов в виде структуры DocumentList с вложенной структурой Document. Для каждого из этих документов запоминаем: MessageId, EntityId.

Получение счета-фактуры и подтверждения оператора¶

Пример структуры подтверждения оператора InvoiceConfirmation в теле ответа:

Формирование извещения о получении счета-фактуры¶

На полученный счет-фактуру Покупатель должен отправить в ответ подписанное извещение InvoiceReceipt о получении СФ.

Например HTTP-запрос для формирования извещение о получении счета-фактуры выглядит следующим образом:

Пример структуры в теле запроса, содержащей данные о подписанте генерируемого извещения Signer :

Отправка извещения о получении счета-фактуры¶

Для этого нужно подготовить структуру MessagePatchToPost следующим образом:

Пример структуры в теле запроса, содержащей данные о передаваемом извещении MessagePatchToPost :

Подтверждение оператора на извещение о получении счета-фактуры¶

После того, как покупатель сформировал и отправил извещение о получении СФ, оператор в ответ должен сформировать подтверждение оператора о дате получения извещения о получении СФ.

Счет-фактура перейдет в статус InboundFinished. Ответного действия покупателя на полученное подтверждение оператора не предусмотрено.

Запрос на исправление или корректировку по счету-фактуре¶

После того, как будет получен XML-файл, его нужно отправить с помощью метода PostMessagePatch

Для этого нужно подготовить структуру MessageToPost следующим образом:

Пример кода на C# для получения счета фактуры:

Пример кода на C# для отправки уведомления об уточнении счета-фактуры:

Порядок согласно приказу N 174Н (утратил силу с 01.07.2021)¶

Порядок документооборота со стороны Покупателя:

Поиск счета-фактуры¶

Действия аналогичны инструкции для обмена СФ по 14Н (см. Поиск счета-фактуры ).

Получение счета-фактуры и подтверждения оператора¶

Действия аналогичны инструкции для обмена СФ по 14Н (см. Получение счета-фактуры и подтверждения оператора ).

Формирование извещения о получении подтверждения оператора¶

После того, как покупатель получил подтверждение оператора, он должен отправить в ответ подписанное извещение InvoiceReceipt о получении подтверждения.

Последовательность действий для формирования извещения о получении подтверждения оператора аналогична последовательности действий для формирования извещения о получении СФ (см. Формирование извещения о получении счета-фактуры ).

За исключением того, что в attachmentId нужно указать идентификатор полученного подтверждения оператора.

Отправка извещения о получении подтверждения оператора¶

Полученное на предыдущем этапе извещение нужно подписать и отправить.

Последовательность действий для отправки сформированного извещения о получении подтверждения оператора аналогична последовательности действий для отправки сформированного извещения о получении СФ (см. Отправка извещения о получении счета-фактуры ).

За исключением того, что в поле ParentEntityId нужно указать идентификатор (EntityId) подтверждения оператора, полученного на предыдущем шаге.

Формирование извещения о получении счета-фактуры¶

Действия аналогичны инструкции для обмена СФ по 14Н (см. Формирование извещения о получении счета-фактуры ).

Отправка извещения о получении счета-фактуры¶

Полученное на предыдущем этапе извещение нужно подписать и отправить. Действия аналогичны инструкции для обмена СФ по 14Н (см. Отправка извещения о получении счета-фактуры ).

Подтверждение оператора о дате отправки извещения о получении счета-фактуры¶

После того, как покупатель сформировал и отправил извещение о дате получении СФ, оператор в ответ должен сформировать подтверждение оператора о дате отправки извещения о получении СФ.

Это подтверждение покупатель должен получить, затем сформировать извещение о получении подтверждения оператора, подписать его и отправить.

Формирование извещения о получении подтверждения оператора аналогично формированию извещения о получении СФ (см. Формирование извещения о получении счета-фактуры ). За исключением того, что в attachmentId нужно указать идентификатор полученного подтверждения оператора.

Подписание и отправка извещения о получении подтверждения оператора аналогичны действиям по подписанию и отправке извещения о получении СФ (см. Отправка извещения о получении счета-фактуры ). За исключением того, что в поле ParentEntityId нужно указать идентификатор (EntityId) подтверждения оператора.

После того, как покупатель сформировал все необходимые извещения, счет-фактура перейдет в статус InboundFinished

Запрос на исправление или корректировку по счету-фактуре¶

Действия аналогичны инструкции для обмена СФ по 14Н (см. Запрос на исправление или корректировку по счету-фактуре ).

Пример кода на C# для получения счета фактуры:

Пример кода на C# для отправки уведомления об уточнении счета-фактуры:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *