# Схема обмена транзитными пакетами (ЭДО)

Источник 1: — «Приложение 4 к Правилам ЭДО «Обеспечение обмена электронными документами через СЭД НРД» - см. p4_pravil_edo_2020_04_06.docx Источник 2: — «Руководство пользователя ПО «Интеграционный шлюз ЭДО НРД». Приложение 1. Инструкция по обмену электронными документами» - см. fgate_exchange.docx

## Общая информация

В Транзите 2.0 используются:

- Пакеты транзитных электронных документов (далее - ПТЭД),
- Уведомления о получении ПТЭД (Далее - Уведомление).

ПТЭД – это zip-архив, содержащий каталог с файлами:

- Зашифрованный файл-вложение;
- WINF.XML - транзитный конверт. Для Мультибанка (Транзит 2.0) характерны следующие элементы и атрибуты:
  - атрибут COVERING_LETTER TRANSIT = YES,
  - LETTER_TYPE= NDC0STND,
  - DOC_TYPE= TRZT.
  - атрибут DOC ENCRYPTED=“YES”

Подробно формат и спецификация WINF.XML смотри в п.7.2 Спецификация WINF.XML.

## Схемы взаимодействия

### Документооборот СЭД НРД

Схема документооборота при транзите электронных документов в СЭД НРД

### Документооборот ПК Мультибанк (Транзит 2.0)

### Схема документопотока с использованием Мультибанка (Транзит 2.0)

Документооборот Транзит 2.0

#### Отправка ПТЭД Корпорацией

Шаг | Этап (COVERING_LETTER STATE) | Тип пакета | Наименование | Получатель транзитной квитанции | Наименование фйла с квитанцией | Схема
--- | --- | --- | --- | --- | --- | ---
1 | Отправка ПТЭД ORIG_TO_NDC | TRANS | Корпорация отправляет ПТЭД в Банк | - | WINF.XML | -
2 | Результат обработки ПТЭД в НРД NDC_TO_ORIG | BTRAN | Уведомление о получении ПТЭД, первая буква которого W, но пакет не является транзитным (отсутствует winf.xml и пр.). Задержки отправки нет | Корпорация | werror.xml | XML_BADP_DTD.xsd
3 | Результат обработки ПТЭД в НРД NDC_TO_ORIG | TRNOC | Уведомление о первичных проверках ПТЭД (не прошел первичные проверки). Задержка отправки по типу пакета 5 минут | Корпорация | WINF.XML | XML_CL_DTD.xsd
4 | Передача ПТЭД в Банк NDC_TO_RECIP | TRANS | НРД отправляет полученный от Корпорации ПТЭД в Банк | - | WINF.XML | -
5 | Результат передачи ПТЭД в Банк NDC_TO_ORIG | TRNOC | Уведомление о первичных проверках ПТЭД (прошел первичные проверки, ПТЭД отправлен в Банк). Задержка отправки по типу пакета 5 минут. Если за это время пришла ответная квитанция TRNRC, положительная TRNOC не отправляется | Корпорация | WINF.XML | XML_CL_DTD.xsd
6 | Результат обработки ПТЭД Банком RECIP_TO_NDC | TRANS | Все входящие в НРД транзитные квитанции Задержки отправки нет | НРД | WINF.XML | XML_CL_DTD.xsd
7 | НРД отклоняет тех.квитанцию Банка NDC_TO_RECIP_ERR | TRBRC | Уведомление о том, что полученная от Банка тех.квитанция имеет ошибочную структуру или некорректный winf.xml Задержки отправки нет | Банк | WINF.XML | XML_CL_DTD.xsd
8 | Корпорация поулчает результат обработки своего ПТЭД в БАнке NDC_TO_RECIP | TRNRC | Уведомление об обработке ПТЭД Корпорации в БАнке Задержки отправки нет | Корпорация | WINF.XML | XML_CL_DTD.xsd

#### Отправка ПТЭД Банком

Шаг | Этап (COVERING_LETTER STATE) | Тип пакета | Наименование | Получатель транзитной квитанции | Наименование фйла с квитанцией | Схема
--- | --- | --- | --- | --- | --- | ---
9 | Отправка ПТЭД RECIP_TO_NDC | TRANS | Корпорация отправляет ПТЭД в Банк | - | WINF.XML | -
10 | Результат обработки ПТЭД в НРД NDC_TO_RECIP_ERR | BTRAN | Уведомление о получении ПТЭД, первая буква которого W, но пакет не является транзитным (отсутствует winf.xml и пр.) Задержки отправки нет | Банк | werror.xml | XML_BADP_DTD.xsd
11 | Результат обработки ПТЭД в НРД NDC_TO_RECIP | TRNOC | Уведомление о первичных проверках ПТЭД (не прошел первичные проверки) Задержка отправки по типу пакета 5 минут | Банк | WINF.XML | XML_CL_DTD.xsd
12 | Передача ПТЭД в Корпорацию RECIP_TO_NDC | TRANS | НРД отправляет полученный от Банка ПТЭД в Корпорацию | - | WINF.XML | -
13 | Результат передачи ПТЭД в Корпорацию NDC_TO_RECIP | TRNOC | Уведомление о первичных проверках ПТЭД (прошел первичные проверки, ПТЭД отправлен в Корпорацию). Задержка отправки по типу пакета 5 минут Если за это время пришла ответная квитанция TRNRC, положительная TRNOC не отправляется | Банк | WINF.XML | XML_CL_DTD.xsd
14 | Результат обработки ПТЭД Корпорацией RECIP_TO_NDC | TRANS | Все входящие в НРД транзитные квитанции Задержки отправки нет | НРД | WINF.XML | XML_CL_DTD.xsd
15 | НРД отклоняет тех.квитанцию Корпорации RECIP_TO_NDC | TRBRC | Уведомление о том, что полученная от Корпорации тех.квитанция имеет ошибочную структуру или некорректный winf.xml Задержки отправки нет | Корпорация | WINF.XML | XML_CL_DTD.xsd
16 | NDC_TO_RECIP | TRNOC | Уведомление об обработке ПТЭД Банка в Корпорации Задержки отправки нет | Корпорация | WINF.XML | XML_CL_DTD.xsd

## Прием ПТЭД от НРД

Входящие сообщения поступают в ИШ, папку INBOX, подпапку, имя которой начинается с W.

ПТЭД определяется:

- Папка содержит winf.xmlи файл, имя которого в winf.xmlуказано в поле `ORIGINAL_FILE_NAME`,
- ВWINF.XMLатрибутCOVERING_LETTER STATE="NDC_TO_RECIP".

Сценарий обработки Получателем (Банком) входящего ПТЭД (см.п.4.2. fgate_exchange.docx):

1. Проверка ПТЭД, согласно Правилам ЭДО;

2. Формирование Уведомления в адрес НРД (Уведомление будет сформировано автоматически Интеграционнымм шлюзом, если в настройках канала WSL установлена опция «Автоматическая отправка уведомления о приме транзитного пакета»), где в WINF.XMLзаполняются атрибуты:

   - COVERING_LETTER STATE="RECIP_TO_NDC",
   - RECIPIENT_DELIV_TIME(согласно спецификации),
   - RECIPIENT_LETTER_ID(согласно спецификации),
   - Если результат проверки положительный, то в WINF.XML:
     - атрибуты CHECKING = SUCCESS.
   - Если результат проверки отрицательный, то в WINF.XML соотв. атрибуты:
     - CHECKINGRESULT = ERROR;
     - CHECKING FACILITYзаполняется кодом ошибки;
     - CAPTION = заполняется текстовым описанием ошибки.

   Подробнее спецификацию WINF.XML и winf.xsd смотри в Спецификация WINF.XML.

3. Наложение ЭП;

4. Отправка Уведомления.

## Отправка Уведомления в НРД

Смотри описание п.6 Таблица 1. Документооборот Транзит 2.0

Детальную информацию смотри в п. 4.1. fgate_exchange.docx

## Отправка ПТЭД в НРД

См.п.9 Таблица 1. Документооборот Транзит 2.0

## Прием Уведомлений от НРД

См.пп.7, 10, 11, 13, 16 Таблица 1. Документооборот Транзит 2.0

## Приложение

## Примеры мэппинга сообщения на ЭФ

## Спецификация WINF.XML

Схема транзитного конверта и квитанций:

Рисунок 5. Схема транзитного конверта и квитанций:

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

№ п/п | Название элемента | Название атрибута элемента | Комментарий
--- | --- | --- | ---
1. | COVERING_LETTER |  | Корневой элемент, содержит всю необходимую информацию о пакете документов. Содержит вложенные элементы ORIGINATOR, RECIPIENT, DEPOSITARY, SERVICE_MARKSи повторяющийся элемент DOC.
2. | COVERING_LETTER | STATE | Может принимать одно из значений, в зависимости от направления пакета: ORIG_TO_NDC–от Отправителя в НРД, именно это значение указывается при отправке транзитного документа в НРД или через НРД другому Участнику ЭДО (Получателю) NDC_TO_RECIP–из НРД Получателю, указывается при пересылке пакета из НРД конечному получателю RECIP_TO_NDC–от Получателя в НРД, указывается в квитанции от Получателя NDC_TO_ORIG-от НРД Отправителю, указывается в квитанции Отправителю NDC_TO_RECIP_ERR-из НРД Получателю, указывается в квитанции Получателюв случае, если не удалось отправить уведомление от Получателя Отправителю
3. | COVERING_LETTER | PROCESSING_MODE | Режим обработки пакетов документов. (TEST в режиме тестирования, LIVE -в противном случае)
4. | COVERING_LETTER | TRANSIT | Признак транзитного пакета. Требуется указать “YES”.
5. | ORIGINATOR |  | Отправитель пакета транзитных электронных документов. Содержит вложенный элемент CONTRAGENT, в котором в теге CONTRAGENT_CODE указывается код Отправителя в НРД (депозитарный код)
6. | RECIPIENT |  | Получатель пакета транзитных электронных документов. Содержит вложенный элемент CONTRAGENT, в котором в теге CONTRAGENT_CODE указывается код Получателя в НРД (депозитарный код)
7. | SERVICE_MARKS |  | Блок, содержащий вложенные элементы. Ниже перечислены обязательные для заполнения теги.
8. | LETTER_ID |  | Уникальный идентификатор пакета транзитных документов (статистически уникальный 128-битный идентификатор)
9. | CONTR_LETTER_ID |  | Идентификатор документа в системе учета Отправителя
10. | LETTER_TYPE |  | Тип пакета транзитных документов: NDC0STND-для нетипизированного транзита, Код ТЭДИКа –для типизированного транзита
11. | CONVERSATION_ID |  | Дополнительный идентификатор пакета транзитных документов (статистически уникальный 128-битный идентификатор)
12. | CREATE_TIME |  | Дата и время создания документа. Содержит вложенный элемент DATETIME.
13. | DATETIME |  | Структура для представления даты и времени. Содержит вложенные элементы DATE и TIME
14. | DATE |  | Часть структуры, содержащая текстовое представление даты. Формат: dd.mm.yyyy
15. | TIME |  | Часть структуры, содержащая текстовое представление времени. Формат: hh:nn:ss
16. | CONVERSATION_ID |  | Дополнительный идентификатор пакета транзитных документов (статистически уникальный 128-битный идентификатор)
17. | CREATE_TIME |  | Дата и время создания документа. Содержит вложенный элемент DATETIME
18. | DATETIME |  | Структура для представления даты и времени. Содержит вложенные элементы DATE и TIME
19. | DATE |  | Часть структуры, содержащая текстовое представление даты. Формат: dd.mm.yyyy
20. | TIME |  | Часть структуры, содержащая текстовое представление времени. Формат: hh:nn:ss
21. | NDC_RECEPT_TIME |  | Дата и время получения Пакета транзитных электронных документов НРД. Содержит вложенный элемент DATETIME
22. | NDC_LETTER_ID |  | Идентификатор данного документа в системе учета НРД
23. | ORIG_CONF_SEND_TIME |  | Дата и время отправки НРД Отправителю Уведомления о получении Пакета транзитных электронных документов. Содержит вложенный элемент DATETIME.
24. | NDC_CHECKING |  | Результат обработки НРД Пакета транзитных электронных документов. Содержит вложенный элемент CHECKING.
25. | RECIPIENT_CHECKING |  | Результат обработки Получателем Пакета транзитных электронных документов. Содержит вложенный элемент CHECKING.
26. | CHECKING |  | Структура, описывающая результат обработки Пакета транзитных электронных документов или отдельного документа. Содержит вложенный элемент CAPTION.
27. | CHECKING |  | Результат обработки: SUCCESS–ошибок не обнаружено, ERROR–при обработке выявлены ошибки
28. | CHECKING |  | Код причины ошибки: SKZI–криптообработка, COMPRESS–разархивирование, FORMAT–ошибка формата. Данный перечень может быть расширен.
29. | CAPTION |  | Текстовое описание обнаруженной ошибки
30. | RECIPIENT_DELIV_TIME |  | Дата и время получения Пакета транзитных электронных документов Получателем. Содержит вложенный элемент DATETIME.
31. | RECIPIENT_LETTER_ID |  | Идентификатор данного документа в системе учета Получателя
32. | NDC_RECIPIENT_CONF_DELIV_TIME |  | Дата и время получения НРД Уведомления о принятии (непринятии) Пакета транзитных электронных документов Получателем. Содержит вложенный элемент DATETIME
33. | ORIG_FINAL_DELIV_CONF_SEND_TIME |  | Дата и время формирования НРД Уведомления о принятии (непринятии) Пакета транзитных электронных документов Получателем для Отправителя ЭД. Содержит вложенный элемент DATETIME
34. | DOC |  | Структура, содержащая информацию об электронном документе. Повторяется по одному разу для каждого документа из пакета. Ниже перечислены обязательные для заполнения атрибуты и теги.
35. | DOC | CONTR_DOC_ID | Идентификатор документа в системе учета Отправителя
36. | DOC | STORE_IN_NDC | Признак хранения документа в архиве НРД: YES-необходимо хранить в архиве НРД, NO–нет необходимости хранить в архиве НРД
37. | DOC | ENCRYPTED | Признак шифрования пакета: YES–зашифрован, NO–не зашифрован
38. | DOC | DELIVERY_TIMED_OUT | Признак ограничения срока доставки документа: YES-Отправителем установлен предельный срок доставки документа, NO-в противном случае
39. | DOC | TRANSFER_AGENT_CONTRACT | Признак услуги трансфер-агента: YES–с услугой трансфер-агента, NO–без услуги трансфер-агента
40. | FILE_NAME |  | Имя файла пакета электронных документов, сформированное по Правилам ЭДО НРД
41. | MAX_DELIVERY_TIME |  | Предельный срок доставки документа. Содержит вложенный элемент DATETIME.
42. | DOC_TYPE |  | Типы документов: Для нетипизированного транзита TRZT, Для типизированного транзита: TRZT_PRM для основного файла в формате XML, TRZT_WRD для файла вложения. Для типизированного транзита должен быть обязательно заполнен элемент IDENT_CODE
39. | ORIGINAL_FILE_NAME |  | Исходное имя файла
40. | IDENT_CODE |  | Идентификационный код транзитного электронного документа (ТЭДИК, обязательно заполняется для типизированного транзита)
41. | NDC_STORAGE_DOC_ID |  | Идентификатор документа в архиве НРД. Заполняется в случае установки признака хранения документа в архиве НРД
42. | RECIPIENT_DOC_ID |  | Идентификатор документа в системе учета Получателя

## Опись электронных документов за период

Источник: п.3 Приложения 3 к Правилам ЭДО НРД «Спецификации служебных электронных документов СЭД НРД

Опись электронных документов распаковывается в ИШ в подпапку с первой буквой Lв папке INBOX.

Опись электронных документов, переданных и полученных НРД за период, как электронный документ в формате CrystalReports представляет собой неразрывную совокупность файлов, указанных в списке, которые собираются в файл с электронным документом путем архивирования с использованием ПО WinZip, совместимого с версией 6.0. Файл с электронным документом (ZIP архивом) подписывается электронной подписью НРД.

Список файлов, из данных которых формируется документ:

- EDList.rpt – документ CrystalReports6.0, используемый для визуализации описи*.
- reporth.dbf – таблица с общими данными документа, формат которой приведен в Приложении 3к Правилам ЭДО НРД «Спецификации функциональных электронных документов СЭД НРД»
- reportp.dbf – таблица с общими данными описи
- table1.dbf – таблица с данными об отправленных из НРД электронных документах
- table2.dbf – таблица с обработанными в НРД входящими сообщениями
- table3.dbf – таблица с обработанными в НРД входящими электронными документами

* CrystalReports6.0 устанавливается с сайта НРД

Наименование реквизита | Наименование файла | Наименование поля в файле | Тип данных, формат
--- | --- | --- | ---
Депозитарный код Участника | reportp.dbf | personcode | Character(12)
Краткое наименование Участника | reportp.dbf | shortname | Character(120)
Опись № | reportp.dbf | listno | Character(10)
Период, за который сформирована опись | reportp.dbf | periodstr | Character(100)
Дата и время составления описи | reportp.dbf | createstr | Character(19)

Раздел 1 (НРД передал Депоненту следующие электронные документы)

Наименование реквизита | Наименование файла | Наименование поля в файле | Тип данных, формат
--- | --- | --- | ---
Код канала предоставления документа | table1.dbf | sendmethod | Character(3)
Адрес электронной почты | table1.dbf | mailaddres | Character(254)
Код типа электронного документа | table1.dbf | doctype | Character(5)
Рег. номер документа | table1.dbf | regno | Character(254)
Дата регистрации документа | table1.dbf | docdate | Character(10)
Дата и время отправки сообщения из НРД | table1.dbf | sendtime | Character(30)
Тема сообщения, содержащего документ | table1.dbf | messagesub | Character(254)
Наименование канала предоставления | table1.dbf | mailtypena | Character(254)
Наименование типа документа | table1.dbf | doctypenam | Character(120)
Имя присоединенного файла, содержащего документ | table1.dbf | legalfilen | Character(12)
Хэш зашифрованного пакета | table1.dbf | hash_value | Character(254)
Хэш нешифрованного пакета | table1.dbf | decr_hash_ | Character(254)

Раздел 2 (НРД обработал следующие сообщения, полученные от Депонента)

Наименование реквизита | Наименование файла | Наименование поля в файле | Тип данных, формат
--- | --- | --- | ---
Код канала предоставления документа | table2.dbf | sendmethod | Character(3)
Адрес электронной почты | table2.dbf | senderaddr | Character(254)
Уникальный № сообщения в НРД | table2.dbf | id | Character(11,0)
Дата и время получения сообщения | table2.dbf | receivetim | Character(30)
Тема сообщения | table2.dbf | messagesub | Character(254)
Сообщение о корректности пакета электронных документов | table2.dbf | errordescr | Character(254)
Наименование канала предоставления | table2.dbf | mailtypena | Character(254)

Раздел 3 (НРД обработал следующие электронные документы, полученные от Депонента)

Наименование реквизита | Наименование файла | Наименование поля в файле | Тип данных, формат
--- | --- | --- | ---
Код типа электронного документа | table3.dbf | macrodocty | Character(5)
Исходящий номер документа | table3.dbf | clientno | Character(15)
Исходящая дата документа | table3.dbf | clientdate | Character(30)
Рег.(вх.) номер документа / код | table3.dbf | regno | Character(254)
Причина отказа | table3.dbf | denidereas | Character(254)
Входящая дата документа | table3.dbf | inputdate | Character(30)
Наименование типа документа | table3.dbf | doctypenam | Character(120)
Идентификатор описи, в которую было включено сообщение,содержащее документ | table3.dbf | listid | Character(11,0)
Номер и дата описи, в которую было включено сообщение, содержащее документ | table3.dbf | listtime | Character(30)
№ в таблице полученных сообщений | table3.dbf | infileid | Character(11,0)

Рисунок 6. Образец Описи