Показать/Скрыть содержание

    Конечная точка Data

    Конечная точка Data предоставляет методы загрузки и скачивания содержимого обрабатываемых документов.

    Список методов:

    • Загрузка документа
    • Получение информации о документе
    • Получение preview-представления документа
    • Получение содержимого документа в формате PDF

    Загрузка документа на сервер

    Метод отправляет запрос на загрузку документа на сервер.

    Параметр Значение
    HTTP-метод POST
    Путь /v1/data
    Аутентификация Аутентификация на ключе Kauth.
    Параметры Объект UploadData, содержащий информацию о документе и параметрах загрузки и передаваемый в заголовке запроса MDAG-UPLOAD;
    содержимое документа, передаваемое в теле запроса (см. примечание и пример).
    Возвращаемое значение Объект UploadDocInfo, содержащий сведения о загруженном на сервер документе.

    Примечание

    Сведения о документе UploadData передаются в заголовке запроса MDAG-UPLOAD. В значение заголовка помещается сериализованное представление объекта UploadData. Сериализация осуществляется по следующему алгоритму:

    BASE64(Utf8GetBytes(JsonToString(uploadData))),
    

    где

    • JsonToString - функция преобразования объекта в JSON-строку,
    • Utf8GetBytes - функция получения массива байтов от строки в кодировке UTF8,
    • BASE64 - функция преобразования массива байтов в строку в формате BASE64.

    Пример

    Содержимое документа test.txt:

    ATTRIBUTES:
    GlobalID=fe16c231-804d-4681-ac1b-a7612bd55cf8
    DocType=PayDocCur
    DocTypeVersion=2.0
    CreateDate=2019-05-16 14:28:08.58
    CreateOrg=348409
    FIELDS:
    DocInfo.DocAccount=40702840838050000545
    DocInfo.DocDate=2019-05-16
    DocInfo.DocNumber=104
    DocInfo.DocSum=7.00
    DocInfo.DocSumCurrency=840
    PayDocCur.AdditionalInfo=/FULLPAY/
    PayDocCur.AmountTransfer=7.00
    PayDocCur.BenefAccountCurISOCode=USD
    PayDocCur.BenefBankBIC=CHASUS31HPQ
    PayDocCur.BenefBankBICType=SWIFT
    PayDocCur.BenefBankCountryCode=840
    PayDocCur.BenefBankCountryISOCode=US
    PayDocCur.BenefBankName=JPMORGAN CHASE BANK, N.A.
    PayDocCur.BenefBankPlace=NEW YORK,NY
    PayDocCur.BenefCountryCode=044
    PayDocCur.BenefCountryISOCode=BS
    PayDocCur.Beneficiar=ASKOT INVESTMENTS LTD
    PayDocCur.BeneficiarAccount=40807840955130000002
    PayDocCur.BeneficiarAddress=NASSAU, EST HILL STREET, 3944
    PayDocCur.BeneficiarCountry=БАГАМЫ
    PayDocCur.BeneficiarPlace=NASSAU
    PayDocCur.BranchShortName=0038-7981-01835
    PayDocCur.ChargeBEN=false
    PayDocCur.ChargeOUR=true
    PayDocCur.ChargeSHA=false
    PayDocCur.ChargesType=OUR
    PayDocCur.CurrCodeISO=USD
    PayDocCur.CurrCodeISOTransfer=USD
    PayDocCur.CurrCodeTransfer=840
    PayDocCur.Flag_TargetAssignment=false
    PayDocCur.IMediaBankAddress=2, KRASNOGO TEKSTILSHCHIKA STREET
    PayDocCur.IMediaBankBIC=SABRRU2P
    PayDocCur.IMediaBankBICType=SWIFT
    PayDocCur.IMediaBankCountryCode=643
    PayDocCur.IMediaBankCountryISOCode=RU
    PayDocCur.IMediaBankName=SBERBANK (SEVERO-ZAPADNY HEAD OFFICE)
    PayDocCur.IMediaBankPlace=ST. PETERSBURG
    PayDocCur.IMediaClirCodeSymbol=RU
    PayDocCur.IMediaClirCountryCode=RU
    PayDocCur.IMediaClirShortName=Банковский идентификационный код (БИК)
    PayDocCur.IsMultiCurr=false
    PayDocCur.OfficialsPhone=76502587430
    PayDocCur.Option50a=F
    PayDocCur.Option56a=A
    PayDocCur.Option57a=A
    PayDocCur.Payer=JSC 'SRI PI.'
    PayDocCur.PayerAddress=LENINA
    PayDocCur.PayerBIC=044525225
    PayDocCur.PayerBankBIC=SABRRUMM
    PayDocCur.PayerBankName=SBERBANK (HEAD OFFICE - ALL BRANCHE
    PayDocCur.PayerBankPlace=Москва
    PayDocCur.PayerCountryCode=643
    PayDocCur.PayerCountryISOCode=RU
    PayDocCur.PayerCountryNameRu=РОССИЯ
    PayDocCur.PayerFiscalCode=7715784155
    PayDocCur.PayerName=АО "НИИ ТП"
    PayDocCur.PayerPlace=PERM
    PayDocCur.PaymentDirection=0
    PayDocCur.PaymentsDetails=FLOWING EXPENSES
    PayDocCur.SenderOfficials=niitp_rut niitp_rut niitp_rut
    PayDocCur.Urgent=false
    

    Объект UploadData в формате JSON:

    {
        "DocumentInfo": "test.txt",
        "SnippetTemplate": "<div style=\"border-radius: 7px;\r\n\t\t\tbox-shadow: 0 0 7px rgba(0,0,0,0.5);\r\n\t\t\tpadding: 15px;\r\n\t\t\tmargin: 10px;\r\n\t\t\tline-height: 1.3;\r\n\t\t\tfont-family: Tahoma;\r\n\t\t\t\">\r\n\t<div style=\"font-size: 16px; font-weight: bold; padding-bottom: 5px;\">\r\n\t\t{0:FIELDS.PayDocCur.AdditionalInfo}\r\n\t</div>\r\n\t<div style=\"font-size: 12px; color: gray;\">\r\n\t\t{0:FIELDS.PayDocCur.BenefBankCountryISOCode}\r\n\t</div>\r\n\t\r\n\t<div style=\"font-size: 16px; font-weight: bold; padding-bottom: 5px; padding-top: 18px;\">\r\n\t\t{0:FIELDS.PayDocCur.ChargeBEN}\r\n\t</div>\r\n\t<div style=\"font-size: 12px; color: gray;\">\r\n\t\tВ том числе НДС 15% - 4.60 примерно 891 тысяч рублей\r\n\t</div>\r\n\t\r\n\t<div style=\"font-size: 18px; padding-top: 13px;\">\r\n\t\t<b>{0:FIELDS.PayDocCur.IMediaBankCountryCode}</b> ₽\r\n\t</div>\r\n\t<![CDATA[{\r\n\t\"FIELDS.PayDocCur.AdditionalInfo\": \r\n\t{\r\n\t\t\"/FULLPAY/\": \"Полная оплата\",\r\n\t},\r\n\t\"FIELDS.PayDocCur.ChargeBEN\":\r\n\t\t{\r\n\t\t\"false\": \"без оплаты BEN\",\r\n\t\t\"true\": \"с оплатой BEN\"\r\n\t}\r\n}]]>\r\n</div>",
        "PreviewTemplate": "<div style=\"border-radius: 7px;\r\n\t\t\tbox-shadow: 0 0 7px rgba(0,0,0,0.5);\r\n\t\t\tpadding: 15px;\r\n\t\t\tmargin: 10px;\r\n\t\t\tline-height: 1.3;\r\n\t\t\tfont-family: Tahoma;\r\n\t\t\t\">\r\n\t<div style=\"font-size: 16px; font-weight: bold; padding-bottom: 5px;\">\r\n\t\t{0:FIELDS.PayDocCur.AdditionalInfo}\r\n\t</div>\r\n\t<div style=\"font-size: 12px; color: gray;\">\r\n\t\t{0:FIELDS.PayDocCur.BenefBankCountryISOCode}\r\n\t</div>\r\n\t\r\n\t<div style=\"font-size: 16px; font-weight: bold; padding-bottom: 5px; padding-top: 18px;\">\r\n\t\t{0:FIELDS.PayDocCur.ChargeBEN}\r\n\t</div>\r\n\t<div style=\"font-size: 12px; color: gray;\">\r\n\t\tВ том числе НДС 15% - 4.60 примерно 891 тысяч рублей\r\n\t</div>\r\n\t\r\n\t<div style=\"font-size: 18px; padding-top: 13px;\">\r\n\t\t<b>{0:FIELDS.PayDocCur.IMediaBankCountryCode}</b> ₽\r\n\t</div>\r\n\t<![CDATA[{\r\n\t\"FIELDS.PayDocCur.AdditionalInfo\": \r\n\t{\r\n\t\t\"/FULLPAY/\": \"Полная оплата\",\r\n\t},\r\n\t\"FIELDS.PayDocCur.ChargeBEN\":\r\n\t\t{\r\n\t\t\"false\": \"без оплаты BEN\",\r\n\t\t\"true\": \"с оплатой BEN\"\r\n\t}\r\n}]]>\r\n</div>"
    }
    

    Значение заголовка (переносы строк добавлены для удобства чтения):

    eyJEb2N1bWVudEluZm8iOiJ0ZXN0LnR4dCIsIlNuaXBwZXRUZW1wbGF0ZSI6IjxkaXYgc3R5
    bGU9XCJib3JkZXItcmFkaXVzOiA3cHg7XHJcblx0XHRcdGJveC1zaGFkb3c6IDAgMCA3cHgg
    cmdiYSgwLDAsMCwwLjUpO1xyXG5cdFx0XHRwYWRkaW5nOiAxNXB4O1xyXG5cdFx0XHRtYXJn
    aW46IDEwcHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjM7XHJcblx0XHRcdGZvbnQtZmFt
    aWx5OiBUYWhvbWE7XHJcblx0XHRcdFwiPlxyXG5cdDxkaXYgc3R5bGU9XCJmb250LXNpemU6
    IDE2cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyBwYWRkaW5nLWJvdHRvbTogNXB4O1wiPlxyXG5c
    dFx0ezA6RklFTERTLlBheURvY0N1ci5BZGRpdGlvbmFsSW5mb31cclxuXHQ8L2Rpdj5cclxu
    XHQ8ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxMnB4OyBjb2xvcjogZ3JheTtcIj5cclxuXHRc
    dHswOkZJRUxEUy5QYXlEb2NDdXIuQmVuZWZCYW5rQ291bnRyeUlTT0NvZGV9XHJcblx0PC9k
    aXY+XHJcblx0XHJcblx0PGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTZweDsgZm9udC13ZWln
    aHQ6IGJvbGQ7IHBhZGRpbmctYm90dG9tOiA1cHg7IHBhZGRpbmctdG9wOiAxOHB4O1wiPlxy
    XG5cdFx0ezA6RklFTERTLlBheURvY0N1ci5DaGFyZ2VCRU59XHJcblx0PC9kaXY+XHJcblx0
    PGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IGdyYXk7XCI+XHJcblx0XHTQ
    kiDRgtC+0Lwg0YfQuNGB0LvQtSDQndCU0KEgMTUlIC0gNC42MCDQv9GA0LjQvNC10YDQvdC+
    IDg5MSDRgtGL0YHRj9GHINGA0YPQsdC70LXQuVxyXG5cdDwvZGl2PlxyXG5cdFxyXG5cdDxk
    aXYgc3R5bGU9XCJmb250LXNpemU6IDE4cHg7IHBhZGRpbmctdG9wOiAxM3B4O1wiPlxyXG5c
    dFx0PGI+ezA6RklFTERTLlBheURvY0N1ci5JTWVkaWFCYW5rQ291bnRyeUNvZGV9PC9iPiDi
    gr1cclxuXHQ8L2Rpdj5cclxuXHQ8IVtDREFUQVt7XHJcblx0XCJGSUVMRFMuUGF5RG9jQ3Vy
    LkFkZGl0aW9uYWxJbmZvXCI6IFxyXG5cdHtcclxuXHRcdFwiL0ZVTExQQVkvXCI6IFwi0J/Q
    vtC70L3QsNGPINC+0L/Qu9Cw0YLQsFwiLFxyXG5cdH0sXHJcblx0XCJGSUVMRFMuUGF5RG9j
    Q3VyLkNoYXJnZUJFTlwiOlxyXG5cdFx0e1xyXG5cdFx0XCJmYWxzZVwiOiBcItCx0LXQtyDQ
    vtC/0LvQsNGC0YsgQkVOXCIsXHJcblx0XHRcInRydWVcIjogXCLRgSDQvtC/0LvQsNGC0L7Q
    uSBCRU5cIlxyXG5cdH1cclxufV1dPlxyXG48L2Rpdj4iLCJQcmV2aWV3VGVtcGxhdGUiOiI8
    ZGl2IHN0eWxlPVwiYm9yZGVyLXJhZGl1czogN3B4O1xyXG5cdFx0XHRib3gtc2hhZG93OiAw
    IDAgN3B4IHJnYmEoMCwwLDAsMC41KTtcclxuXHRcdFx0cGFkZGluZzogMTVweDtcclxuXHRc
    dFx0bWFyZ2luOiAxMHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDogMS4zO1xyXG5cdFx0XHRm
    b250LWZhbWlseTogVGFob21hO1xyXG5cdFx0XHRcIj5cclxuXHQ8ZGl2IHN0eWxlPVwiZm9u
    dC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogYm9sZDsgcGFkZGluZy1ib3R0b206IDVweDtc
    Ij5cclxuXHRcdHswOkZJRUxEUy5QYXlEb2NDdXIuQWRkaXRpb25hbEluZm99XHJcblx0PC9k
    aXY+XHJcblx0PGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDsgY29sb3I6IGdyYXk7XCI+
    XHJcblx0XHR7MDpGSUVMRFMuUGF5RG9jQ3VyLkJlbmVmQmFua0NvdW50cnlJU09Db2RlfVxy
    XG5cdDwvZGl2PlxyXG5cdFxyXG5cdDxkaXYgc3R5bGU9XCJmb250LXNpemU6IDE2cHg7IGZv
    bnQtd2VpZ2h0OiBib2xkOyBwYWRkaW5nLWJvdHRvbTogNXB4OyBwYWRkaW5nLXRvcDogMThw
    eDtcIj5cclxuXHRcdHswOkZJRUxEUy5QYXlEb2NDdXIuQ2hhcmdlQkVOfVxyXG5cdDwvZGl2
    PlxyXG5cdDxkaXYgc3R5bGU9XCJmb250LXNpemU6IDEycHg7IGNvbG9yOiBncmF5O1wiPlxy
    XG5cdFx00JIg0YLQvtC8INGH0LjRgdC70LUg0J3QlNChIDE1JSAtIDQuNjAg0L/RgNC40LzQ
    tdGA0L3QviA4OTEg0YLRi9GB0Y/RhyDRgNGD0LHQu9C10LlcclxuXHQ8L2Rpdj5cclxuXHRc
    clxuXHQ8ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxOHB4OyBwYWRkaW5nLXRvcDogMTNweDtc
    Ij5cclxuXHRcdDxiPnswOkZJRUxEUy5QYXlEb2NDdXIuSU1lZGlhQmFua0NvdW50cnlDb2Rl
    fTwvYj4g4oK9XHJcblx0PC9kaXY+XHJcblx0PCFbQ0RBVEFbe1xyXG5cdFwiRklFTERTLlBh
    eURvY0N1ci5BZGRpdGlvbmFsSW5mb1wiOiBcclxuXHR7XHJcblx0XHRcIi9GVUxMUEFZL1wi
    OiBcItCf0L7Qu9C90LDRjyDQvtC/0LvQsNGC0LBcIixcclxuXHR9LFxyXG5cdFwiRklFTERT
    LlBheURvY0N1ci5DaGFyZ2VCRU5cIjpcclxuXHRcdHtcclxuXHRcdFwiZmFsc2VcIjogXCLQ
    sdC10Lcg0L7Qv9C70LDRgtGLIEJFTlwiLFxyXG5cdFx0XCJ0cnVlXCI6IFwi0YEg0L7Qv9C7
    0LDRgtC+0LkgQkVOXCJcclxuXHR9XHJcbn1dXT5cclxuPC9kaXY+In0=
    

    Пример запроса и ответа

    Запрос

    POST /mydss/v1/data HTTP/1.1
    Host: teststand.cryptopro.ru
    MDAG-UPLOAD: eyJEb2N1bWVudEluZm8iOiJ0ZXN0LmRvYyJ9...
    Content-Type: application/octet-stream
    
    ...<Binary Stream>...
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json; charset=utf-8
    
    {
        "docId": "5615885f-9241-4dfd-91c6-b98aa2428bd6"
    }
    

    Получение информации о документе

    Метод отправляет запрос на получение информации о загруженном документе.

    Параметр Значение
    HTTP-метод GET
    Путь /v1/data/{docId}
    Аутентификация Аутентификация на ключе Kauth.
    Параметры docId - идентификатор документа.
    Возвращаемое значение Объект DownloadDocInfo, содержащий сведения о документе.

    Пример

    Запрос

    GET /mydss/v1/data/5615885f-9241-4dfd-91c6-b98aa2428bd6 HTTP/1.1
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": "5615885f-9241-4dfd-91c6-b98aa2428bd6",
        "documentInfo": "test.txt",
        "documentHash": "693BE8DF00312EEE89CF0E5E608288B2C636DFF9DA965145226F8FE16DFB3689",
        "snippet": "<div style=\"border-radius: 7px;    box-shadow: 0 0 7px rgba(0,0,0,0.5);    padding: 15px;    margin: 10px;    line-height: 1.3;    font-family: Tahoma;    \">\r\n  <div style=\"font-size: 16px; font-weight: bold; padding-bottom: 5px;\">\r\n\t\tПолная оплата\r\n\t</div>\r\n  <div style=\"font-size: 12px; color: gray;\">\r\n\t\tUS\r\n\t</div>\r\n  <div style=\"font-size: 16px; font-weight: bold; padding-bottom: 5px; padding-top: 18px;\">\r\n\t\tбез оплаты BEN\r\n\t</div>\r\n  <div style=\"font-size: 12px; color: gray;\">\r\n\t\tВ том числе НДС 15% - 4.60 примерно 891 тысяч рублей\r\n\t</div>\r\n  <div style=\"font-size: 18px; padding-top: 13px;\">\r\n    <b>643</b> ₽\r\n\t</div>\r\n</div>",
        "snippetHash": "A988A71076FCC2809988073D69C7785E71C464491D426CAEFCC980823E485236",
        "fileSize": 2367
    }
    

    Получение preview-представления документа

    Метод отправляет запрос на скачивание содержимого Preview-представления документа в формате PDF.

    Параметр Значение
    HTTP-метод GET
    Путь /v1/data/{docId}/preview?type=printable
    Аутентификация Аутентификация на ключе Kauth.
    Параметры docId - идентификатор документа.
    Возвращаемое значение Octet Stream

    Пример

    Запрос

    GET /mydss/v1/data/5615885f-9241-4dfd-91c6-b98aa2428bd6/preview?type=printable HTTP/1.1
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/octet-stream
    
    ...<Binary Stream>...
    

    Получение содержимого документа в формате PDF

    Метод отправляет запрос на скачивание содержимого документа формате PDF.

    Параметр Значение
    HTTP-метод GET
    Путь /v1/data/{docId}/preview?type=raw?pageCount={pageCount}&pageOffset={pageOffset}
    Аутентификация Аутентификация на ключе Kauth.
    Параметры docId - идентификатор документа,
    pageCount - количество страниц, которое требуется скачать (опциональный),
    pageOffset - количество страниц, которое требуется пропустить от начала документа (опциональный).
    Пример
    Значения pageCount=5,pageOffset=3 означают, что требуется вернуть 5 страниц начиная со страницы 3.
    Возвращаемое значение Octet Stream, TotalPageCount (в заголовке HTTP)

    Примечение

    В заголовке ответа CPDSS-TotalPageCount сервис возвращает общее количество страниц в документе.

    Пример

    Запрос

    GET /mydss/v1/data/5615885f-9241-4dfd-91c6-b98aa2428bd6/preview?type=raw&pageCount=2&pageOffset=1 HTTP/1.1
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/octet-stream
    CPDSS-TotalPageCount: 2
    
    ...<Binary Stream>...
    

    Получение содержимого документа

    Метод отправляет запрос на скачивание содержимого документа.

    Параметр Значение
    HTTP-метод GET
    Путь /v1/data/{docId}/content?offset={offset}
    Аутентификация Аутентификация на ключе Kauth.
    Параметры docId - идентификатор документа <br> offset - смещение в байтах от начала документа
    Возвращаемое значение Octet Stream

    Парамет offset повзоляет продолжить загружку документа, если она была прервана. Данный параметр может быть полезен при загрузке больших документов.

    Пример

    Запрос

    GET /mydss/v1/data/5615885f-9241-4dfd-91c6-b98aa2428bd6/content HTTP/1.1
    

    Ответ

    HTTP/1.1 200 OK
    Content-Type: application/octet-stream
    
    ...<Binary Stream>...
    
    В начало © ООО "КРИПТО-ПРО", 2000–2025