DocumentTypeDescription

message DocumentTypeDescription {
    required string Name = 1;
    required string Title = 2;
    repeated DocumentDocflow SupportedDocflows = 3;
    required bool RequiresFnsRegistration = 4;
    repeated DocumentFunction Functions = 9;
}

enum DocumentDocflow {
    External = 0;       // внешний документооборот
    Internal = 1;       // внутренний документооборот
}
  • Name - уникальный строковой идентификатор типа (он же TypeNamedId в других контрактах и методах)

  • Title - заголовок типа, человеко-понятное название (например, «Счёт-фактура»)

  • SupportedDocflows - поддерживаемые типы документооборота

  • RequiresFnsRegistration - для работы требуется заявление участника ЭДО

  • Functions - описания функций документа

DocumentFunction

Описывает функцию документа.

message DocumentFunction {
    required string Name = 1;
    repeated DocumentVersion Versions = 2;
}
  • Name - строковой идентификатор функции, уникальное в рамках типа документов

  • Versions - описания версий документа

DocumentVersion

Описывает версию документа.

message DocumentVersion {
    required string Version = 1;
    required bool SupportsContentPatching = 2;
    required bool SupportsEncrypting = 3;
    required bool SupportsPredefinedRecipientTitle = 7;
    required bool SupportsAmendmentRequest = 8;
    repeated DocumentTitle Titles = 4;
    required bool IsActual = 5;
    repeated DocumentWorkflow Workflows = 6;
}
  • Version - строковой идентификатор версии, уникальный в рамках функции документа

  • SupportsContentPatching - поддерживается патчинг

  • SupportsEncrypting - поддерживается отправка зашифрованных документов

  • SupportsPredefinedRecipientTitle - поддерживается отправка предопределенного титула. Подробнее здесь: Как работать с предопределённым титулом получателя.

  • SupportsAmendmentRequest - поддерживается отправка запроса на уточнение.

  • Titles - описания титулов документа

  • IsActual - версия актуальна

  • Workflows - виды документооборота

DocumentTitle

Описывает титул документа.

message DocumentTitle {
    required int32 Index = 7;
    required bool IsFormal = 1;
    optional string XsdUrl = 2;
    optional string UserDataXsdUrl = 5;
    required SignerInfo SignerInfo = 6;
    repeated DocumentMetadataItem MetadataItems = 3;
    repeated DocumentMetadataItem EncryptedMetadataItems = 4;
}
  • Index - числовой идентификатор титула. По смыслу означает, в каком порядке титулы загружаются контрагентами. Всегда начинается с 0.

  • IsFormal - титул формализованный

  • XsdUrl - URL-путь метода, возвращающего файл XSD-схемы титула

  • UserDataXsdUrl - URL-путь метода, возвращающего файл XSD-схемы контракта для генерации титула с помощью обобщённого метода генерации. Может отсутствовать, тогда это означает, что генерация титула под этим индексом нереализована. Для генерации титулов используется метод GenerateTitleXml.

  • SignerInfo - описание подписанта титула

  • MetadataItems - описания метаданных документа

  • EncryptedMetadataItems - описания метаданных для отправки зашифрованного документа

SignerInfo

Описывает тип подписанта титула.

message SignerInfo {
    required SignerType SignerType = 1;
    required DocumentTitleType ExtendedDocumentTitleType = 2 [default = Absent];
}

enum SignerType {
    None = 0;
    Signer = 1;
    ExtendedSigner = 2;
}
  • SignerType - тип подписанта необходимый для титула

    • None - подписант отсутствует в контенте документа. Формируется только файл открепленной подписи. Используется для неформализованных документов

    • Signer - простой подписант. Используется для документов форматов @93/@172 и своих типов документов не на базе формата @155

    • ExtendedSigner - расширенный подписант. Используется для документов форматов @155/@551/@552/@820 и своих типов на базе формата @155

  • DocumentTitleType - Тип титула документа, для которого нужно заполнить дополнительные данные о подписанте. Для типов подписанта None и Signer значение всегда равно Absent.

DocumentMetadataItem

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

message DocumentMetadataItem {
    required string Id = 1;
    required DocumentMetadataItemType Type = 2;
    required bool IsRequired = 3;
    required DocumentMetadataSource Source = 4;
}

enum DocumentMetadataItemType {
    String = 0;                     // строка
    Integer = 1;                    // целое число
    Decimal = 2;                    // число с десятичной точкой
    Date = 3;                       // дата в формате ДД.ММ.ГГГГ
    Time = 4;                       // время в формате чч:мм
}

enum DocumentMetadataSource {
    Xml = 0;                        // метаданные содержатся в теле документа
    User = 1;                       // метаданные передаются в метод API отдельными полями
}
  • Id - идентификатор

  • Type - тип значения

  • IsRequired - обязательность

  • Source - способ передачи метаданных