Работа с вложенными файлами

URI

Работа с вложенными файлами может производиться для документов:
- Письма
- Сведения о валютных операциях (СВО)
- Справки о подтверждающих документах (СПД)
- Постановка на учет внешнеторгового контракта (УНК)

Отправка вложенных файлов вместе с документом (POST)

ВНИМАНИЕ!

Отправка вложенных файлов вместе с документом — предпочтительный способ отправки вложения .

При формировании запроса необходимо указать:

  • Заголовок (header) Content-Type должен начинаться с multipart/.. (например multipart/form-data )

  • Тип Body = form-data

  • Для файла с сообщением contentId/type/key = message

  • Для каждого вложения contentId/type/key = attachment

Пример заполнения полей в программе postman (Контракт с подписанным вложением):

files example 1

Для документа названия вложений должны быть прописаны в самом файле сообщения:

Документ Тег для вложений

Письма

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

Пример простейшего корректного блока Attchmnt:

<Attchmnt>
  <DocTp>CCDC</DocTp>
  <DocNb>0</DocNb>
  <URL>attach_auth.024_003275_SVO_CCDC-1.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</CreDtTm>
      <NbOfItms>1</NbOfItms>
      <InitgPty>
        <Pty>
          <Id>
            <OrgId>
              <Othr>
                <Id>6315016823</Id>
                <SchmeNm>
                  <Cd>TXID</Cd>
                </SchmeNm>
              </Othr>
              <Othr>
                <Id>40702810001300013144</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>ООО &quot;Мир Технологий&quot;</Nm>
        <Id>
          <OrgId>
            <Othr>
              <Id>6315016823</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 передать параметры:

  1. Media Type: multipart/form-data

  2. В самом запросе для вложенных файлов необходимо указывать ContentID = attachment (маркер для определения файла - вложения)

URL для отправки вложений отдельно от документа и для получения вложений (GET)

Можно запросить вложения любого типа: как отправленные отдельно от документа, так и вместе с ним.

Table 1. URI
Тип документа Описание метода Метод Ссылка Комментарий

Вложения к СВО

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>/<FileId>

Получение списка файлов, приложенных к Контракту (УНК)

Get attach to Contract

GET

/API/v1/ISO20022/Contracts/Files/<CtrctRegnOpngId>

Получение контента файла, приложенного к Контракту (УНК)

Отправка вложенных файлов с подписью

Файлы возможно отправлять как с подписью, так и без нее. Для отправки вложенных файлов с подписью используйте рекомендации ниже.

Необходимо в 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 - название подписываемого файла