Конечная точка 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>...