DispatchICOrder

Материал из Справочная система Россельхознадзора
Перейти к навигации Перейти к поиску

Общие сведения

Операция DispatchICOrder предназначена для создания заказов на эмиссию кодов маркировки (далее - КМ) в государственной информационной системе мониторинга за оборотом товаров (далее – ГИС МТ).

На вход системы передаются следующие сведения:

Результатом выполнения данной операции является:

  • эмиссия указанного количества КМ в ГИС МТ;
  • уникальный идентификатор заказа и планируемое время выполнения операции.

По идентификатору заказа хозяйствующий субъект может запросить КМ в ГИС МТ.

Подача заявки

Работа с сервисом реализована по псевдо-асинхронному принципу и осуществляется в два шага:

1 шаг – подача заявки на выполнение бизнес-операции, получение результата приема заявки (выполняется синхронно);

2 шаг – подача запроса на получение результатов обработки заявки/выполнения бизнес-операции (выполняется синхронно).

Данные запроса

Структура данных запроса в формате ХML.

  <ws:submitApplicationRequest>
    <ws:apiKey>{app:APIKey}</ws:apiKey>
    <app:application>
      <app:serviceId>{xs:NCName}</app:serviceId>
      <app:issuerId>{bs:UUID}</app:issuerId>
      <app:issueDate>{xs:dateTime}</app:issueDate>
      <app:data>{app:ApplicationDataWrapper}</app:data>
    </app:application>
  </ws:submitApplicationRequest>


Объект submitApplicationRequest

Заявка в единой заявочной системе на выполнение определенной операции, определяет пользователя, который инициирует запрос и содержит сведения самого запроса.

Поле Описание Тип Обязательность
apiKey Специальный код, который идентифицирует учетную запись пользователя и позволяет веб-сервису получить доступ к информации о хозяйствующем субъекте и обслуживаемых предприятиях, к которым данный пользователь относится. app:APIKey 1
application Сведения о заявке. app:application 1

Объект submitApplicationRequest/application

Сведения о заявке.

Поле Описание Тип Обязательность
serviceId Код запрашиваемого сервиса (системы, к которой обращается пользователь).
  • crpt-gateway.service:1.0
xs:NCName 1
issuerId Идентификатор хозяйствующего субъекта от имени которого происходит обращение к Ветис.API. Указанный хозяйствующий субъект должен быть одним из хозяйствующих субъектов, обслуживаемых данной программной системой. Перечень обслуживаемых программной системой хозяйствующих субъектов устанавливается при предоставлении доступа к Ветис.API. bs:UUID 1
issueDate Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. xs:dateTime 1
data Сведения о заявке. app:ApplicationDataWrapper 1

Данные ответа

Структура данных запроса в формате ХML.

      <submitApplicationResponse xmlns="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
         <application xmlns="http://api.vetrf.ru/schema/cdm/application">
            <applicationId>{bs:UUID}</applicationId>
            <status>{app:ApplicationStatus}</status>
            <serviceId>{xs:NCName}</serviceId>
            <issuerId>{bs:UUID}</issuerId>
            <issueDate>{xs:dateTime}</issueDate>
            <rcvDate>{xs:dateTime}</rcvDate>
         </application>
      </submitApplicationResponse>

Объект submitApplicationResponse

Заявка в заявочной системе, содержит сведения запроса.

Поле Описание Тип Обязательность
application Сведения о заявке. app:Application 1

Объект submitApplicationResponse/application

Поле Описание Тип Обязательность
applicationId Сгенерированный идентификатор заявки. bs:UUID 1
status Статус готовности результата. app:ApplicationStatus 1
serviceId Код запрашиваемого сервиса (системы, к которой обращается пользователь). xs:NCName 1
issuerId Идентификатор хозяйствующего субъекта от имени которого происходит обращение к Ветис.API. Указанный хозяйствующий субъект должен быть одним из хозяйствующих субъектов, обслуживаемых данной программной системой. Перечень обслуживаемых программной системой хозяйствующих субъектов устанавливается при предоставлении доступа к Ветис.API. bs:UUID 1
issueDate Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. xs:dateTime 1
rcvDate Дата и время формирования результата. xs:dateTime 1

Получение результата обработки заявки

Данные запроса

Структура данных запроса в формате ХML.

<ws:receiveApplicationResultRequest>
    <ws:apiKey>{xs:string}</ws:apiKey>
    <ws:issuerId>{bs:UUID}</ws:issuerId>
    <ws:applicationId>{bs:UUID}</ws:applicationId>
</ws:receiveApplicationResultRequest>

Объект receiveApplicationResultRequest

Запрос на получение результатов обработки заявки.

Поле Описание Тип Обязательность
apiKey Специальный код, который идентифицирует учетную запись пользователя и позволяет веб-сервису получить доступ к информации о хозяйствующем субъекте и обслуживаемых предприятиях, к которым данный пользователь относится. xs:string 1
issuerId Идентификатор пользователя, обратившегося к заявочной системе. bs:UUID 1
applicationId Идентификатор заявки, в заявочной системе. Хранится в базе в течение 3-х дней. По истечении 3-х дней получить ответ по applicationId будет невозможно. bs:UUID 1

Данные ответа

Структура данных ответа в формате ХML.

<receiveApplicationResultResponse xmlns="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
    <application xmlns="http://api.vetrf.ru/schema/cdm/application">
        <applicationId>{bs:UUID}</applicationId>
        <status>{app:ApplicationStatus}</status>
        <serviceId>{xs:NCName}</serviceId>
        <issuerId>{bs:UUID}</issuerId>
        <issueDate>{xs:dateTime}</issueDate>
        <rcvDate>{xs:dateTime}</rcvDate>
        <prdcRsltDate>{xs:dateTime}</prdcRsltDate>
        <result>
            <...>
        </result>
    </application>
</receiveApplicationResultResponse>

Объект receiveApplicationResultResponse

Получение результатов обработки заявки.

Поле Описание Тип Обязательность
application Сведения о заявке. app:Application 1

Объект receiveApplicationResultResponse/application

Поле Описание Тип Обязательность
applicationId Сгенерированный идентификатор заявки. bs:UUID 1
status Статус готовности результата. app:ApplicationStatus 1
serviceId Код запрашиваемого сервиса (системы, к которой обращается пользователь). xs:NCName 1
issuerId Идентификатор хозяйствующего субъекта от имени которого происходит обращение к Ветис.API. Указанный хозяйствующий субъект должен быть одним из хозяйствующих субъектов, обслуживаемых данной программной системой. Перечень обслуживаемых программной системой хозяйствующих субъектов устанавливается при предоставлении доступа к Ветис.API. bs:UUID 1
issueDate Дата и время обращения пользователя к заявочной системе. Устанавливается разработчиком клиентской системы. xs:dateTime 1
rcvDate Дата и время формирования результата. xs:dateTime 1
prdcRsltDate Дата и время получения результата выполнения заявки. xs:dateTime 1
result Результат выполнения заявки. app:ApplicationResultWrapper 1

Данные запроса (submitApplicationRequest/application/data)

# Название XML-элемента Тип Обязат. Описание (нажмите [...] для отображения дополнительного описания)
001 <cgw:dispatchICOrderRequest>
002 ···<cgw:productionOrderId>7d827571-e01f-4bb3-ba23-99398a7dfbec</cgw:productionOrderId> bs:String255 [1..1] Номер производственного заказа. Должен соответствовать номеру производственного заказа, переданного в documentContent.
003 ···<cgw:documentContent>ewogICJjb250YWN0UGVyc29uIjogIkpva … </cgw:documentContent> [xs:base64Binary] [1..1]

Содержимое документа (заказа).

Сформированный запрос на эмиссию КМ согласно спецификации ГИС МТ в формате base64 - https://честныйзнак.рф/upload/iblock/07f/STANTSIYA-UPRAVLENIYA-ZAKAZAMI.pdf
004 ···<cgw:signature>MIIMFgYJKoZIhvcNAQcCoIIMBz … </cgw:signature> [xs:base64Binary] [1..1] Отсоединенная электронная подпись документа.
005 </cgw:dispatchICOrderRequest>

Данные ответа (receiveApplicationResultResponse/application/result)

# Название XML-элемента Тип Обязат. Описание
001 <cgw:dispatchICOrderResponse>
002 ···<cgw:orderId>068ab44e-9163-4193-a488-87ab6eb2ba27</cgw:orderId> bs:UUID [1..1] Номер сформированного документа (заказа).
003 ···<cgw:expectedCompleteTimestamp>916</cgw:expectedCompleteTimestamp> [xs:nonNegativeInteger] [1..1] Ожидаемое время формирования результата.
004 </cgw:dispatchICOrderResponse>

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

Запрос на эмиссию КМ

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.vetrf.ru/schema/cdm/application/ws-definitions" xmlns:app="http://api.vetrf.ru/schema/cdm/application">
    <soapenv:Header/>
    <soapenv:Body>
        <ws:submitApplicationRequest>
            <ws:apiKey>{{apiKey}}</ws:apiKey>
            <app:application>
                <app:serviceId>{{serviceId}}</app:serviceId>
                <app:issuerId>{{issuerId}}</app:issuerId>
                <app:issueDate>2018-07-19T00:00:00</app:issueDate>
                <app:data>
                    <cgw:dispatchICOrderRequest xmlns:cgw="http://api.vetrf.ru/schema/cdm/crptgw/applications/v1">
                        <cgw:productionOrderId>63b5d1cd-919b-4cef-b117-2ce59059bc33</cgw:productionOrderId>
                        <cgw:documentContent>ewogICJjb250YWN0UGVyc29uIjogIkpvaG4gU21pdGggKNCY0LLQsNC90L7QsiDQn9C10YLRgCDQodC40LTQvtGA0L7QstC40YcpIiwKICAiY3JlYXRlTWV0aG9kVHlwZSI6ICJTRUxGX01BREUiLAogICJwcm9kdW
N0aW9uT3JkZXJJZCI6ICI2M2I1ZDFjZC05MTliLTRjZWYtYjExNy0yY2U1OTA1OWJjMzMiLAogICJwcm9kdWN0cyI6IFsKICAgIHsKICAgICAgImV4cERhdGUiOiAiMTkxMjMxIiwKICAgICAgImV4cERhdGU3MiI6ICIxOTEyMzEyMzU5IiwKICAgICAgImd0aW4iOiAiMDEzMzQ
1Njc4OTQzMzkiLAogICAgICAicXVhbnRpdHkiOiAzLAogICAgICAic2VyaWFsTnVtYmVyVHlwZSI6ICJTRUxGX01BREUiLAogICAgICAic2VyaWFsTnVtYmVycyI6IFsKICAgICAgICAiWFQ2Yzg0ZTM5Z1hqVyIsCiAgICAgICAgIjJrWTM5T21kbUhUd3giLAogICAgICA
gICJYNGVic3NKUHpubkxnIgogICAgICBdLAogICAgICAidGVtcGxhdGVJZCI6IDEKICAgIH0KICBdLAogICJyZWxlYXNlTWV0aG9kVHlwZSI6ICJJTVBPUlQiCn0=</cgw:documentContent>
			<cgw:signature>MIIMFgYJKoZIhvcNAQcCoIIMBzCCDAMCAQExDjAMBggqhQMHAQECAgUAMAsGCSqGSIb3DQEHAaCCCZgwggmUMIIJQaADAgECAhAJbsEAUKoFqkj0OfXn7g94MAoGCCqFAwcBAQMCMIIBxDEbMBkGCSqGSIb3DQEJARYMY2FAc2VydHVtLnJ1MRgwFgYFKoUDZAES
DTExMTY2NzMwMDg1MzkxGjAYBggqhQMDgQMBARIMMDA2NjczMjQwMzI4MQswCQYDVQQGEwJSVTEzMDEGA1UECAwqNjYg0KHQstC10YDQtNC70L7QstGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMMSEwHwYDVQQHDBjQldC60LDRgtC10YDQuNC90LHRg9GA0L
MxLjAsBgNVBAkMJdGD0LsuINCj0LvRjNGP0L3QvtCy0YHQutCw0Y8g0LQuIDEz0JAxbDBqBgNVBAoMY9Ce0LHRidC10YHRgtCy0L4g0YEg0L7Qs9GA0LDQvdC40YfQtdC90L3QvtC5INC+0YLQstC10YLRgdGC0LLQtdC90L3QvtGB0YLRjNGOICLQodC10YD
RgtGD0Lwt0J/RgNC+IjFsMGoGA1UEAwxj0J7QsdGJ0LXRgdGC0LLQviDRgSDQvtCz0YDQsNC90LjRh9C10L3QvdC+0Lkg0L7RgtCy0LXRgtGB0YLQstC10L3QvdC+0YHRgtGM0Y4gItCh0LXRgNGC0YPQvC3Qn9GA0L4iMB4XDTE5MDUxNzExMzkxNloXDTIw
MDUxNzExNDMxOFowggHMMSAwHgYJKoZIhvcNAQkBFhFhLmhvZHlyZXZAY3JwdC5ydTEaMBgGCCqFAwOBAwEBEgwwMDc3MzEzNzY4MTIxFjAUBgUqhQNkAxILMDQ3MzEyMjM0MjcxGDAWBgUqhQNkARINMTE3Nzc0NjcyNTkyNTE9MDsGA1UEDAw00KDRg9C6
0L7QstC+0LTQuNGC0LXQu9GMINC+0YLQtNC10LvQsCDRgdC10YDQstC40YHQsDErMCkGA1UECgwi0J7QntCeICLQntCf0JXQoNCQ0KLQntCgLdCm0KDQn9CiIjEuMCwGA1UECQwl0J/QoC3QmtCiINCc0JjQoNCQLCDQlNCe0JwgNiwg0J7QpCAyNTEVMBMG
A1UEBwwM0JzQvtGB0LrQstCwMRwwGgYDVQQIDBM3NyDQsy4g0JzQvtGB0LrQstCwMQswCQYDVQQGEwJSVTE2MDQGA1UEKgwt0JDQu9C10LrRgdCw0L3QtNGAINCQ0LvQtdC60YHQsNC90LTRgNC+0LLQuNGHMRcwFQYDVQQEDA7QpdC+0LTRi9GA0LXQs
jErMCkGA1UEAwwi0J7QntCeICLQntCf0JXQoNCQ0KLQntCgLdCm0KDQn9CiIjBmMB8GCCqFAwcBAQEBMBMGByqFAwICJAAGCCqFAwcBAQICA0MABEDmovu6WtXv8+oinQKzhyEcHC0nu1iJjzhz5vf5l2m1LDuXTM0BFbL3sBIkpfPJEyMmeHFv4U9
0MBit5lGZUPb+o4IE+jCCBPYwDgYDVR0PAQH/BAQDAgTwMBwGA1UdEQQVMBOBEWEuaG9keXJldkBjcnB0LnJ1MBMGA1UdIAQMMAowCAYGKoUDZHEBMEIGA1UdJQQ7MDkGCCsGAQUFBwMCBgcqhQMCAiIGBggrBgEFBQcDBAYHKoUDA4E5AQYIKoUDA
wUKAgwGByqFAwMHCAEwgdQGCCsGAQUFBwEBBIHHMIHEMDYGCCsGAQUFBzABhipodHRwOi8vcGtpLnNlcnR1bS1wcm8ucnUvb2NzcDIwMTIvb2NzcC5zcmYwRgYIKwYBBQUHMAKGOmh0dHA6Ly9jYS5zZXJ0dW0tcHJvLnJ1L2NlcnRpZmljYXRlcy
9zZXJ0dW0tcHJvLXEtMjAxOC5jcnQwQgYIKwYBBQUHMAKGNmh0dHA6Ly9jYS5zZXJ0dW0ucnUvY2VydGlmaWNhdGVzL3NlcnR1bS1wcm8tcS0yMDE4LmNydDArBgNVHRAEJDAigA8yMDE5MDUxNzExMzkxNVqBDzIwMjAwNTE3MTE0MzE4WjCCA
TMGBSqFA2RwBIIBKDCCASQMKyLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0YHQuNGPIDQuMCkMUyLQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAgItCa0YDQuNC/0YLQvtCf0YDQviDQo9CmIiDQstC10YDR
gdC40LggMi4wDE/QodC10YDRgtC40YTQuNC60LDRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g4oSWINCh0KQvMTI0LTMzODAg0L7RgiAxMS4wNS4yMDE4DE/QodC10YDRgtC40YTQuNC60LDRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y
8g4oSWINCh0KQvMTI4LTM1OTIg0L7RgiAxNy4xMC4yMDE4MDYGBSqFA2RvBC0MKyLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0Y
HQuNGPIDQuMCkwdwYDVR0fBHAwbjA3oDWgM4YxaHR0cDovL2NhLnNlcnR1bS1wcm8ucnUvY2RwL3NlcnR1bS1wcm8tcS0yMDE4LmNybDAzoDGgL4YtaHR0cDovL2NhLnNlcnR1bS5ydS9jZHAvc2VydHVtLXByby1xLTIwMT
guY3JsMIIBYAYDVR0jBIIBVzCCAVOAFCZggwXyb97IGlxDLc5u3jjya9HWoYIBLKSCASgwggEkMR4wHAYJKoZIhvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0L
AxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxLjAsBgNVBAkMJdGD0LvQuNGG0LAg0KLQstC10YDRgdC60LDRjywg0LTQvtC8IDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYFK
oUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1MSwwKgYDVQQDDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQuIILAIJnZQUAAAAAABswHQYDVR0OBBYEFMVqy0RVH4IqMzwv
etfPkXeDA963MAoGCCqFAwcBAQMCA0EAyLyav0IDvo+zyr6FJFnnKhKrZANly1m+ueenl6cgJphX0k/vm7iYfQR7rIINv8REOz1xtufCjUSTu2EOBqo88TGCAkMwggI/AgEBMIIB2jCCAcQxGzAZBgkqhkiG9w0BCQEWDGNhQHNlcnR1bS5ydTEYMBYGBSqFA2QBEg0xMTE2NjczMDA4NTM5MRowGAYIKoUDA4EDAQESDDAwNjY3MzI0MDMyODELMAkGA1UEBhMCUlUxMzAxBgNVBAgMKjY2INCh0L
LQtdGA0LTQu9C+0LLRgdC60LDRjyDQvtCx0LvQsNGB0YLRjDEhMB8GA1UEBwwY0JXQutCw0YLQtdGA0LjQvdCx0YPRgNCzMS4wLAYDVQQJDCXRg9C7LiDQo9C70YzRj9C90L7QstGB0LrQsNGPINC0LiAxM9CQMWwwagYDVQ
QKDGPQntCx0YnQtdGB0YLQstC+INGBINC+0LPRgNCw0L3QuNGH0LXQvdC90L7QuSDQvtGC0LLQtdGC0YHRgtCy0LXQvdC90L7RgdGC0YzRjiAi0KHQtdGA0YLRg9C8LdCf0YDQviIxbDBqBgNVBAMMY9Ce0LHRidC10YHR
gtCy0L4g0YEg0L7Qs9GA0LDQvdC40YfQtdC90L3QvtC5INC+0YLQstC10YLRgdGC0LLQtdC90L3QvtGB0YLRjNGOICLQodC10YDRgtGD0Lwt0J/RgNC+IgIQCW7BAFCqBapI9Dn15+4PeDAMBggqhQMHAQECAgUAMAwGCCqF
AwcBAQEBBQAEQKoLKAbEmob1I86QKYyLuL7hQUjaC3OY58qe91fxH5JWJcwm6122SMg9iR1+cMx+SLTesfCmg6IEd09rNuyK6ls=</cgw:signature>
                    </cgw:dispatchICOrderRequest>
                </app:data>
            </app:application>
        </ws:submitApplicationRequest>
    </soapenv:Body>
</soapenv:Envelope>


Раскодированный JSON в блоке <cgw:documentContent>

{
  "contactPerson": "John Smith (Иванов Петр Сидорович)",
  "createMethodType": "SELF_MADE",
  "productionOrderId": "63b5d1cd-919b-4cef-b117-2ce59059bc33",
  "products": [
    {
      "expDate": "191231",
      "expDate72": "1912312359",
      "gtin": "01334567894339",
      "quantity": 3,
      "serialNumberType": "SELF_MADE",
      "serialNumbers": [
        "XT6c84e39gXjW",
        "2kY39OmdmHTwx",
        "X4ebssJPznnLg"
      ],
      "templateId": 1
    }
  ],
  "releaseMethodType": "IMPORT"
}


Ответ на запрос

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <receiveApplicationResultResponse xmlns="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
            <application xmlns="http://api.vetrf.ru/schema/cdm/application">
                <applicationId>bec7ec62-59b0-4c44-a3cd-137435bfdb7b</applicationId>
                <status>COMPLETED</status>
                <serviceId>crpt-gateway.service</serviceId>
                <issuerId>11111111-1111-1111-1111-111111111111</issuerId>
                <issueDate>2018-07-19T00:00:00+03:00</issueDate>
                <rcvDate>2020-07-06T18:20:29+03:00</rcvDate>
                <prdcRsltDate>2020-07-06T18:21:02+03:00</prdcRsltDate>
                <result>
                    <cgw:dispatchICOrderResponse xmlns:cgw="http://api.vetrf.ru/schema/cdm/crptgw/applications/v1">
                        <cgw:orderId>068ab44e-9163-4193-a488-87ab6eb2ba27</cgw:orderId>
                        <cgw:expectedCompleteTimestamp>916</cgw:expectedCompleteTimestamp>
                    </cgw:dispatchICOrderResponse>
                </result>
            </application>
        </receiveApplicationResultResponse>
    </soap:Body>