30. Работа с вложенными файлами
URI
Работа с вложенными файлами может производиться для документов:
- Письма
- Сведения о валютных операциях (СВО)
- Справки о подтверждающих документах (СПД)
- Постановка на учет внешнеторгового контракта (УНК)
- Внесение изменений в I раздел ВБК (переоформление УНК)
- Снятие внешнеторгового контракта с учета
Отправка вложенных файлов вместе с документом (POST)
При формировании запроса необходимо указать:
-
Заголовок (header) Content-Type должен начинаться с multipart/.. (например multipart/form-data )
-
Тип Body = form-data
-
Для файла с сообщением contentId/type/key = message
-
Для каждого вложения contentId/type/key = attachment
Пример заполнения полей в программе postman (Контракт с подписанным вложением):
Для документа названия вложений должны быть прописаны в самом файле сообщения:
Документ | Тег для вложений |
---|---|
Письма |
Document.CcyCtrlReqOrLttr.ReqOrLttr.Attchmnt |
СВО |
Document.PmtRgltryInfNtfctn.TxNtfctn.TxCert.CertRcrd.Attchmnt |
СПД |
Document.CcyCtrlSpprtgDocDlvry.GrpHdr.SpprtgDoc.Ntry.Attchmnt |
Контракт (УНК) |
В одном из трёх: Document.CtrctRegnReq.CtrctRegn.CtrctRegnOpng.Attchmnt Document.CtrctRegnReq.CtrctRegn.CtrctRegnOpng.Ctrct.Trad.Attchmnt Document.CtrctRegnReq.CtrctRegn.CtrctRegnOpng.Ctrct.Ln.Attchmnt |
Снятие контракта с учета |
Document.CtrctRegnClsrReq.RegdCtrctClsr.Attchmnt |
Внесение изменений в I раздел ВБК |
Document.CtrctRegnAmdmntReq.CtrctRegnAmdmnt.RegdCtrctAmdmnt.Attchmnt |
Пример простейшего корректного блока Attchmnt (для всех документов, кроме переоформления УНК) :
<Attchmnt>
<DocTp>CCDC</DocTp>
<DocNb>0</DocNb>
<URL>attach_auth.024_003275_SVO_CCDC-1.pdf</URL>
<AttchdBinryFile>
<MIMETp>NONE</MIMETp>
</AttchdBinryFile>
</Attchmnt>
Пример корректного блока Attchmnt для внесения изменений в I раздел ВБК (переоформление УНК):
<Attchmnt>
<DocTp>CСDC</DocTp>
<DocNb>12A</DocNb> <!-- Номер документа-обоснования. Если номера нет, указать "БН" -->
<IsseDt>2023-01-27</IsseDt> <!-- Дата документа-обоснования -->
<URL>attach_reissue_test.pdf</URL>
<AttchdBinryFile>
<MIMETp>NONE</MIMETp>
</AttchdBinryFile>
</Attchmnt>
Пример подписанного СПД с блоком вложения
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:auth.025.001.01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CcyCtrlSpprtgDocDlvry>
<GrpHdr>
<MsgId>TEST_MSG_2021-06-25-1</MsgId>
<CreDtTm>2021-06-25T12:42:04.270+03:00</CreDtTm>
<NbOfItms>1</NbOfItms>
<InitgPty>
<Pty>
<Id>
<OrgId>
<Othr>
<Id>7013602245</Id>
<SchmeNm>
<Cd>TXID</Cd>
</SchmeNm>
</Othr>
<Othr>
<Id>40702810200000000083</Id>
<SchmeNm>
<Cd>ACC</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</Pty>
</InitgPty>
</GrpHdr>
<SpprtgDoc>
<SpprtgDocId>TEST_SPPRTG_2021-06-25-1</SpprtgDocId>
<Cert>
<Id>TEST_ID_2021-06-25-1</Id>
<DtOfIsse>2021-06-25</DtOfIsse>
</Cert>
<AcctOwnr>
<Nm>ООО "Тест Альфа-Линк"</Nm>
<Id>
<OrgId>
<Othr>
<Id>7013602245</Id>
<SchmeNm>
<Cd>TXID</Cd>
</SchmeNm>
</Othr>
</OrgId>
</Id>
</AcctOwnr>
<AcctSvcr>
<FinInstnId>
<ClrSysMmbId>
<ClrSysId>
<Cd>RUCBC</Cd>
</ClrSysId>
<MmbId>044525593</MmbId>
</ClrSysMmbId>
</FinInstnId>
</AcctSvcr>
<CtrctRef>
<RegdCtrctId>TEST_REG_CTRCT_2021-06-25-1</RegdCtrctId>
</CtrctRef>
<Ntry>
<NtryId>TEST_NTRY_2021-06-25-1</NtryId>
<OrgnlDoc>
<Id>TEST_ORGDOC_2021-06-25-1</Id>
<DtOfIsse>2021-05-26</DtOfIsse>
</OrgnlDoc>
<DocTp>0023</DocTp>
<TtlAmt Ccy="RUR">100.00</TtlAmt>
<ShipmntAttrbts>
<Conds>
<Prtry>3</Prtry>
</Conds>
</ShipmntAttrbts>
<AddtlInf>тестирование h2h</AddtlInf>
<Attchmnt>
<DocTp>1</DocTp>
<DocNb>1</DocNb>
<URL>attach.xml</URL>
<AttchdBinryFile>
<MIMETp>NONE</MIMETp>
</AttchdBinryFile>
</Attchmnt>
</Ntry>
</SpprtgDoc>
<SplmtryData>
<Envlp>
<SgntrSt>
<ds:Signature Id="sigID1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"/>
<ds:DigestValue>OKG/2l9G6Jd2aNmcBJdQlTfVRsyUlAGYbbzrabBWluI=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>qwGl2JeSJcLekHwiUKpjlIB5lgNGbb2yUDNuhtfC5ykK0yG2crSRhw4WHElwWMnKXvFo8PKG08fkA7dVYMWbMg==</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>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</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
</SgntrSt>
</Envlp>
</SplmtryData>
</CcyCtrlSpprtgDocDlvry>
</Document>
Отправка вложенных файлов отдельно от документа (POST)
Для отправки файлов вложением отдельно от документа необходимо в Headers передать параметры:
-
Media Type: multipart/form-data
-
В самом запросе для вложенных файлов необходимо указывать ContentID = attachment (маркер для определения файла - вложения)
URL для отправки вложений отдельно от документа и для получения вложений (GET)
Можно запросить вложения любого типа: как отправленные отдельно от документа, так и вместе с ним.
Тип документа | Описание метода | Метод | Ссылка | Комментарий |
---|---|---|---|---|
Вложения к СВО |
Load attaches to Certificate |
POST |
/API/v1/ISO20022/COCertificates/Transactions/Files/<TxId> |
Отправка вложенных файлов в СВО |
Get attaches' list to Certificate |
GET |
/API/v1/ISO20022/COCertificates/Transactions/Files/<TxId> |
Получение списка файлов, приложенных к СВО |
|
Get attach to Certificate |
GET |
/API/v1/ISO20022/COCertificates/Transactions/Files/<TxId>/<FileId> |
Получение контента файла, приложенного к СВО |
|
Вложения к СПД |
Load attaches to Certificate |
POST |
/API/v1/ISO20022/ConfCertificates/Transactions/Files/<SpprtgDocId> |
Отправка вложенных файлов в СПД |
Get attaches' list to Certificate |
GET |
/API/v1/ISO20022/ConfCertificates/Transactions/Files/<SpprtgDocId> |
Получение списка файлов, приложенных к СПД |
|
Get attach to Certificate |
GET |
/API/v1/ISO20022/ConfCertificates/Transactions/Files/<SpprtgDocId>/<FileId> |
Получение контента файла, приложенного к СПД |
|
Вложения к письму |
Load attaches to letter |
POST |
/API/v1/ISO20022/Letters/OutLetters/Files/<ReqOrLttrId> |
Отправка вложенных файлов |
Get attach’s content to incoming letter |
GET |
/API/v1/ISO20022/Letters/InLetters/Files/<ReqOrLttrId>/<DocNb> |
Получение контента файла, приложенного к входящему письму |
|
Вложения к Контракту (УНК) |
Load attaches to Contract |
POST |
/API/v1/ISO20022/Contracts/Files/<CtrctRegnOpngId> |
Отправка вложенных файлов в Контракт (УНК) |
Get attaches' list to Contract |
GET |
/API/v1/ISO20022/Contracts/Files/<CtrctRegnOpngId> |
Получение списка файлов, приложенных к Контракту (УНК) |
|
Get attach to Contract |
GET |
/API/v1/ISO20022/Contracts/Files/<CtrctRegnOpngId>/<FileId> |
Получение контента файла, приложенного к Контракту (УНК) |
|
Снятие контракта с учета |
Get attaches' list to Contract |
GET |
/API/v1/ISO20022/Contracts/Close/Files/<RegdCtrctClsrId> |
Получение списка файлов |
Get attach to Contract |
GET |
/API/v1/ISO20022/Contracts/Close/Files/<RegdCtrctClsrId>/<FileId> |
Получение контента файла |
|
Внесение изменений в I раздел ВБК |
Get attaches' list to Contract |
GET |
/API/v1/ISO20022/Contracts/Reissue/Files/<RegdCtrctAmdmntId> |
Получение списка файлов |
Get attach to Contract |
GET |
/API/v1/ISO20022/Contracts/Reissue/Files/<RegdCtrctAmdmntId>/<FileId> |
Получение контента файла |
Отправка вложенных файлов с подписью
Файлы возможно отправлять как с подписью, так и без нее. При отправке вложения одновременно с документом - главное, чтобы был подписан сам документ.
Для отправки вложенных файлов с подписью используйте рекомендации ниже.
Необходимо в Headers передать параметры:
1. check-sign-attach со значением true
2. company-tin (не обязательный параметр) со значением ИНН компании
3. В самом запросе для файлов-подписей (.pkcs7) необходимо указывать ContentId = sign (маркер для определения подписей)
Может быть 2 варианта установки подписи:
1. Все подписи в одном файле .pkcs7
2. Каждая подпись в отдельном файле .pkcs7
Наименование файлов подписи должны соответствовать формату:
sign_filename.pkcs7 или signX_filename.pkcs7 , где
X - это цифра от 1 до 3 в случае, если подписей на файле несколько и каждая из них в отдельном файле (.pkcs7),
filename - название подписываемого файла