DocumentTypeDescription

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

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 - уникальный строковой идентификатор типа
  • 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;
    repeated DocumentTitle Titles = 4;
    required bool IsActual = 5;
    repeated DocumentWorkflow Workflows = 6;
    required bool SupportsPredefinedRecipientTitle = 7;
}
  • Version - строковой идентификатор версии, уникальный в рамках функции документа
  • SupportsContentPatching - поддерживается патчинг
  • SupportsEncrypting - поддерживается отправка зашифрованных документов
  • Titles - описания титулов документа
  • IsActual - версия актуальна
  • Workflows - виды документооборота
  • SupportsPredefinedRecipientTitle - поддерживается отправка предопределенного титула. Подробнее здесь: Как работать с предопределённым титулом получателя.

DocumentTitle

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

message DocumentTitle {
    required bool IsFormal = 1;
    optional string XsdUrl = 2;
    optional string UserDataXsdUrl = 5;
    required SignerInfo SignerInfo = 6;
    repeated DocumentMetadataItem MetadataItems = 3;
    repeated DocumentMetadataItem EncryptedMetadataItems = 4;
}
  • IsFormal - титул формализованный
  • XsdUrl - URL-путь метода, возвращающего файл XSD-схемы титула
  • UserDataXsdUrl - URL-путь метода, возвращающего файл XSD-схемы контракта для генерации титула с помощью обобщённого метода генерации. Для генерации титулов получателя может быть использован метод GenerateRecipientTitleXml.
  • 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 и своих типов на базе формата @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 - способ передачи метаданных