Документооборот УПД¶
Приказом ФНС России от 24.03.2016 №ММВ-7-15/155@, утвержден электронный формат универсального передаточного документа УПД. На смену формату №155 пришел формат №820, утвержденный Приказом ФНС России от 19.12.2018 №ММВ-7-15/820@
До конца 2019 года действующими являлись оба формата, с 1 января 2020 года формат №155 утратил силу.
Примечание
Подробнее про УПД можно прочитать здесь
Формат документа можно использовать:
- как счет-фактуру;
- как первичный документ, подтверждающий совершение хозяйственной операции;
- как универсальный передаточный документ (УПД), который совмещает в себе счет-фактуру и первичный документ, подтверждающий совершение хозяйственной операции.
Примечание
Форма универсального передаточного документа, а также рекомендации по его заполнению приведены в письме ФНС России от 21.10.13 № ММВ-20-3/96@.
Форматы¶
В силу приказа №ММВ-7-15/820@ электронный УПД может быть в следующем формате:
XSD-схема 1-го титула формата УПД
;- используется при передаче УПД с функцией СЧФ, ДОП, СЧФДОП;
XSD-схема 2-го титула формата УПД
;- используется при передаче УПД с функцией ДОП, СЧФДОП;
В силу приказа №ММВ-7-15/155@ электронный УПД может быть в следующем формате (documentVersion=utd_05_01_05):
XSD-схема 1-го титула формата УПД
;- используется при передаче УПД с функцией СЧФ, ДОП, СЧФДОП;
XSD-схема 2-го титула формата УПД
;- используется при передаче УПД с функцией ДОП, СЧФДОП;
XSD-схемы первого и второго титулов УПД последней версии формата 155 могут быть получены с помощью ссылки, доступной в поле XsdUrl контракта DocumentTitle, в результате вызова метода GetDocumentTypes.
Примечание
До конца 2019 года действующими являлись оба формата - №155 и №820, с 1 января 2020 года формат №155 утратил свою силу.
УПД с функцией СЧФ¶
Структуры¶
Для документов, возникающих в ходе документооборота УПД с функцией СЧФ, в Диадоке зарезервированы специальные типы сущностей.
Для УПД с функцией СЧФ можно использовать следующую структуру:
- Attachment/UniversalTransferDocument (FunctionType.Invoice),
Для исправления УПД с функцией СЧФ можно использовать следующую структуру:
- Attachment/UniversalTransferDocumentRevision (FunctionType.Invoice),
Для корректировки УКД с функцией КСЧФ можно использовать следующую структуру:
- Attachment/UniversalCorrectionDocument (FunctionType.Invoice),
Для исправления корректировки УКД с функцией КСЧФ можно использовать следующую структуру:
- Attachment/UniversalCorrectionDocumentRevision (FunctionType.Invoice),
Для служебных документов, возникающих в ходе реализации порядка обмена ЭСФ, можно использовать следующую структуру:
- Attachment/InvoiceConfirmation (подтверждение оператора электронного документооборота, для обоих приказов),
- Attachment/InvoiceCorrectionRequest (уведомление об уточнении СФ/ИСФ/КСФ/ИКСФ, для обоих приказов),
- Attachment/InvoiceReceipt (извещение о получении СФ/ИСФ/КСФ/ИКСФ, подтверждения оператора электронного документооборота или уведомления об уточнении СФ/ИСФ/КСФ/ИКСФ, для обоих приказов).
Порядок обмена¶
В случае, когда УПД используется с функцией СЧФ (FunctionType.Invoice), документооборот повторяет документооборот СФ.
- Продавец формирует УПД (СЧФ) UniversalTransferDocument1, подписывает его и направляет Покупателю.
- Диадок формирует подтверждение оператора InvoiceConfirmation2о дате получения УПД (СЧФ), подписывает его и направляет Продавцу.
- Диадок формирует подтверждение оператора InvoiceConfirmation2“о дате отправки УПД (СЧФ), подписывает его и направляет вместе со счетом фактурой Покупателю.
- Продавец получает подтверждение оператора и отправляет в ответ подписанное извещение InvoiceReceipt3о получении подтверждения.
- Покупатель получает УПД (СЧФ) и подтверждение оператора и отправляет в ответ подписанные извещение InvoiceReceipt5о получении УПД (СЧФ) и извещение InvoiceReceipt4о получении подтверждения.
- Диадок формирует подтверждение оператора InvoiceConfirmation6о дате отправки извещения о получении УПД (СЧФ), подписывает его и направляет Покупателю.
- Покупатель получает подтверждение оператора и отправляет в ответ подписанное извещение InvoiceReceipt7о получении подтверждения.
- Если Покупатель обнаружил ошибки в полученном УПД (СЧФ), он формирует уведомление об уточнении УПД (СЧФ) InvoiceCorrectionRequest8, подписывает его и направляет Продавцу.
- Продавец получает уведомление об уточнении УПД (СЧФ), и отправляет в ответ подписанное извещение InvoiceReceipt9о получении уведомления.

Таким образом:
- со стороны получателя необходимо отправить InvoiceReceipt на InvoiceConfirmation от оператора, а также отправить InvoiceReceipt на документ УПД с функцией СЧФ.
- со стороны отправителя необходимо сформировать InvoiceReceipt на InvoiceConfirmation от оператора и получить InvoiceReceipt по документу УПД.
УПД с функцией ДОП¶
Структуры¶
Для документов, возникающих в ходе документооборота УПД с функцией ДОП, в Диадоке зарезервированы специальные типы сущностей.
Для титула продавца УПД с функцией ДОП можно использовать следующую структуру:
- Attachment/UniversalTransferDocument (FunctionType.Basic),
Для титула покупателя УПД с функцией ДОП можно использовать следующую структуру:
- Attachment/UniversalTransferDocumentBuyerTitle (FunctionType.Basic),
Порядок обмена¶
В случае, когда УПД используется с функцией ДОП (FunctionType.Basic), документооборот повторяет документооборот актов и накладных.
- Продавец формирует титул продавца УПД (ДОП) UniversalTransferDocument1, подписывает его и направляет Покупателю.
- Диадок доставляет титул продавца УПД (ДОП) UniversalTransferDocument1до Покупателя.
- Покупатель получает титул продавца УПД (ДОП) UniversalTransferDocument2, и формирует в ответ титул покупателя UniversalTransferDocumentBuyerTitle3, подписывает его и отправляет в сторону Продавца.
- Диадок доставляет титул покупателя УПД (ДОП) UniversalTransferDocumentBuyerTitle4до Продавца.
- Если Покупатель обнаружил ошибки в полученном титуле продавца УПД (ДОП), он формирует отказ в подписи XmlSignatureRejection5, подписывает его и направляет Продавцу.
- Диадок доставляет отказ в подписи XmlSignatureRejection5до Продавца.

Таким образом:
- со стороны получателя необходимо сгенерировать и отправить ответный титул покупателя, либо отказ в подписи.
- со стороны отправителя необходимо сгенерировать и отправить первичный титул продавца.
УПД с функцией СЧФДОП¶
В случае, когда УПД используется с функцией СЧФДОП (FunctionType.InvoiceAndBasic), объединяются документообороты для FunctionType.Invoice и FunctionType.Basic.
- Продавец формирует титул продавца УПД (СЧФДОП) UniversalTransferDocument1, подписывает его и направляет Покупателю.
- Диадок формирует подтверждение оператора InvoiceConfirmation2о дате получения титула продавца УПД (СЧФДОП), подписывает его и направляет Продавцу.
- Диадок формирует подтверждение оператора InvoiceConfirmation2“о дате отправки титула продавца УПД (СЧФДОП), подписывает его и направляет вместе со УПД (СЧФДОП) Покупателю.
- Продавец получает подтверждение оператора и отправляет в ответ подписанное извещение InvoiceReceipt3о получении подтверждения.
- Покупатель получает титул продавца УПД (СЧФДОП) и подтверждение оператора и отправляет в ответ подписанные извещение InvoiceReceipt5о получении титула продавца УПД (СЧФДОП) и извещение InvoiceReceipt4о получении подтверждения.
- Диадок формирует подтверждение оператора InvoiceConfirmation6о дате отправки извещения о получении титула продавца УПД (СЧФДОП), подписывает его и направляет Покупателю.
- Покупатель получает подтверждение оператора и отправляет в ответ подписанное извещение InvoiceReceipt7о получении подтверждения.
- Покупатель формирует в ответ на титул продавца УПД (СЧФДОП), титул покупателя УПД (СЧФДОП) UniversalTransferDocumentBuyerTitle8, подписывает его и отправляет в сторону Продавца.
- Диадок доставляет титул покупателя УПД (СЧФДОП) UniversalTransferDocumentBuyerTitle9до Продавца.
- Если Покупатель обнаружил ошибки в полученном титуле продавца УПД (СЧФДОП), он формирует отказ в подписи XmlSignatureRejection10, подписывает его и направляет Продавцу.
- Если Покупатель обнаружил ошибки в полученном титуле продавца УПД (СЧФДОП), он формирует уведомление об уточнении УПД (СЧФДОП) InvoiceCorrectionRequest11, подписывает его и направляет Продавцу.
- Порядок отправки структур InvoiceReceipt4и UniversalTransferDocumentBuyerTitle9покупателем не важен.
- Продавец получает уведомление об уточнении УПД (СЧФДОП), и отправляет в ответ подписанное извещение InvoiceReceipt12о получении уведомления.

Таким образом:
- со стороны покупателя нужно сформировать и отправить InvoiceReceipt на InvoiceConfirmation, InvoiceReceipt на документ УПД (СЧФДОП), а также титул покупателя УПД (СЧФДОП).
- со стороны отправителя необходимо сформировать InvoiceReceipt на InvoiceConfirmation от оператора, получить InvoiceReceipt по документу, получить титул покупателя УПД (СЧФДОП).
Подписанты¶
Набор необходимых полей для подписания счетов-фактур, актов и накладных был значительно меньше, чем для подписания УПД и УКД.
Все данные подписанта доставались из сертификата и данных его организации - автоматическое заполнение данных подписанта происходило при заполнении BoxId и Certificate/CertificateThumbprint.
Форматы УПД и УКД подразумевают расширенный набор полей для подписантов. Этот набор полей не содержится ни в сертификате, ни в данных организации.
Но логика автоматического заполнения данных о подписантах сохранилась и при подписании УПД и УКД.
Автоматическое заполнение происходит, если в Диадоке есть дополнительные данные, необходимые для подписания. Если дополнительных данных, необходимых для подписания в Диадоке нет, то будет возникать ошибка.
Расширенные данные можно заполнить методом ExtendedSignerDetails.
Для указания этих данных в Диадоке добавлены следующие структуры и методы:
- структура для описания реквизитов продавца, покупателя и грузоотправителя, используемая в УПД и УКД - ExtendedOrganizationInfo
- структура для описания реквизитов подписанта, используемая в УПД и УКД - ExtendedSigner
- структура для описания реквизитов подписанта, используемая в методе ExtendedSignerDetails - ExtendedSignerDetailsToPost