Отрасль: Госсервисы. Актуально на 2026-10-24.
Универсальный шлюз Ветис.API связывает сторонние информационные системы с компонентами ВетИС (Меркурий, Хорриот, Цербер, Икар) и даёт доступ к справочникам и реестрам. Для хозяйствующих субъектов основной сервис — ApplicationManagementService Меркурия: оформление производственных, транспортных и входящих партий, гашение и аннулирование ВСД, получение ВСД и записей складского журнала, управление пользователями. Интерфейс — SOAP; работа с заявками псевдо-асинхронная: подать заявку, затем запросить результат.
Учётная система предприятия видит ветеринарные сопроводительные документы на поставки и готовит приёмку заранее.
cat > list.xml <<'XML'
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:apldef="http://api.vetrf.ru/schema/cdm/application/ws-definitions"
xmlns:apl="http://api.vetrf.ru/schema/cdm/application"
xmlns:merc="http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v3"
xmlns:vd="http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2"
xmlns:bs="http://api.vetrf.ru/schema/cdm/base"
xmlns:dt="http://api.vetrf.ru/schema/cdm/dictionary/v2">
<SOAP-ENV:Body>
<apldef:submitApplicationRequest>
<apldef:apiKey>APIKEY</apldef:apiKey>
<apl:application>
<apl:serviceId>mercury-g2b.service:3.0</apl:serviceId>
<apl:issuerId>ISSUER_ID</apl:issuerId>
<apl:issueDate>2026-10-24T10:00:00</apl:issueDate>
<apl:data>
<merc:getVetDocumentListRequest>
<merc:localTransactionId>list20261024</merc:localTransactionId>
<merc:initiator><vd:login>mercury_user</vd:login></merc:initiator>
<bs:listOptions><bs:count>1000</bs:count><bs:offset>0</bs:offset></bs:listOptions>
<vd:vetDocumentType>INCOMING</vd:vetDocumentType>
<vd:vetDocumentStatus>CONFIRMED</vd:vetDocumentStatus>
<vd:issueDateInterval>
<bs:beginDate>2026-10-01T00:00:00</bs:beginDate>
<bs:endDate>2026-10-24T23:59:59</bs:endDate>
</vd:issueDateInterval>
<dt:enterpriseGuid>ENTERPRISE_GUID</dt:enterpriseGuid>
</merc:getVetDocumentListRequest>
</apl:data>
</apl:application>
</apldef:submitApplicationRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
curl -s -u "$VETIS_LOGIN:$VETIS_PASSWORD" -H 'Content-Type: text/xml; charset=utf-8' \
--data-binary @list.xml https://api.vetrf.ru/platform/services/3.0/ApplicationManagementService
# в ответе applicationId — передай его в receiveApplicationResultRequest:
cat > result.xml <<'XML'
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:apldef="http://api.vetrf.ru/schema/cdm/application/ws-definitions">
<SOAP-ENV:Body>
<apldef:receiveApplicationResultRequest>
<apldef:apiKey>APIKEY</apldef:apiKey>
<apldef:issuerId>ISSUER_ID</apldef:issuerId>
<apldef:applicationId>APPLICATION_ID</apldef:applicationId>
</apldef:receiveApplicationResultRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
XML
curl -s -u "$VETIS_LOGIN:$VETIS_PASSWORD" -H 'Content-Type: text/xml; charset=utf-8' \
--data-binary @result.xml https://api.vetrf.ru/platform/services/3.0/ApplicationManagementService
Кладовщик принял поставку мяса или молочной продукции — ВСД гасится из учётной системы, а товар попадает в складской журнал Меркурия.
<!-- Содержимое apl:data в submitApplicationRequest; обёртка — как в сценарии выше -->
<merc:processIncomingConsignmentRequest>
<merc:localTransactionId>inc20261024a</merc:localTransactionId>
<merc:initiator><vd:login>mercury_user</vd:login></merc:initiator>
<merc:delivery>
<vd:deliveryDate>2026-10-24T09:30:00</vd:deliveryDate>
<vd:consignor><!-- ХС и площадка отправителя из ВСД --></vd:consignor>
<vd:consignee><!-- ХС и площадка получателя --></vd:consignee>
<vd:consignment><!-- продукция, объём, единица измерения по факту --></vd:consignment>
<vd:transportInfo><!-- тип и номер транспортного средства --></vd:transportInfo>
<vd:accompanyingForms><!-- ссылка на гасимый ВСД и ТТН --></vd:accompanyingForms>
</merc:delivery>
<merc:deliveryFacts>
<vd:vetCertificatePresence>ELECTRONIC</vd:vetCertificatePresence>
<vd:docInspection><vd:result>CORRESPONDS</vd:result></vd:docInspection>
<vd:vetInspection><vd:result>CORRESPONDS</vd:result></vd:vetInspection>
<vd:decision>ACCEPT_ALL</vd:decision>
</merc:deliveryFacts>
</merc:processIncomingConsignmentRequest>
Перед отгрузкой покупателю — проверить, что партия есть в складском журнале, и оформить транспортный ВСД.
<!-- Содержимое apl:data в submitApplicationRequest -->
<merc:getStockEntryListRequest>
<merc:localTransactionId>stock20261024</merc:localTransactionId>
<merc:initiator><vd:login>mercury_user</vd:login></merc:initiator>
<bs:listOptions><bs:count>1000</bs:count><bs:offset>0</bs:offset></bs:listOptions>
<dt:enterpriseGuid>ENTERPRISE_GUID</dt:enterpriseGuid>
</merc:getStockEntryListRequest>
https://api.vetrf.ruhttps://api2.vetrf.ru:8002https://api.vetrf.ru/schema/platform/services/v3.0b-last/ams-mercury-g2b.service_v3.0.wsdlТип: Basic Auth
Базовая аутентификация логином и паролем, которые присылаются письмом после получения доступа; затем проверяется apiKey, передаваемый в теле запроса. Заявка на доступ подаётся через форму https://t2-aplms.vetrf.ru/pub/ (тестовый контур) или https://aplms.vetrf.ru/pub/ (продуктивный, нужна УКЭП руководителя). Поддержка — api@vetrf.ru.
В ответе: applicationId, status, rcvDate.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
apiKey |
body | string | да | Ключ API |
application.serviceId |
body | string | да | mercury-g2b.service:3.0 |
application.issuerId |
body | string | да | Идентификатор заявителя |
application.issueDate |
body | string | да | Дата подачи заявки |
application.data |
body | object | да | Тело заявки: запрос конкретной операции Меркурия |
Идентификатор заявки хранится 3 дня.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
apiKey |
body | string | да | Ключ API |
issuerId |
body | string | да | Идентификатор заявителя |
applicationId |
body | string | да | ID заявки из ответа submitApplicationRequest |
Передаётся в application.data как getVetDocumentListRequest. В ответе — vetDocumentList с атрибутами total, offset, count.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
localTransactionId |
body | string | нет | ID заявки в клиентской системе |
initiator.login |
body | string | да | Логин пользователя Меркурия (логин базовой аутентификации не подходит) |
listOptions.count |
body | integer | нет | Количество, по умолчанию 100, максимум 1000 |
listOptions.offset |
body | integer | нет | Смещение, по умолчанию 0 |
vetDocumentType |
body | string | нет | INCOMING, OUTGOING, PRODUCTIVE, TRANSPORT, RETURNABLE |
vetDocumentStatus |
body | string | нет | CONFIRMED, WITHDRAWN, UTILIZED |
issueDateInterval.beginDate |
body | string | нет | Начало интервала оформления (интервал не больше 31 дня) |
issueDateInterval.endDate |
body | string | нет | Конец интервала |
consignor |
body | object | нет | Фильтр по отправителю (не для PRODUCTIVE) |
referencedDocument |
body | object | нет | Поиск по связанному документу (нужен vetDocumentType) |
enterpriseGuid |
body | string | да | GUID предприятия |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
localTransactionId |
body | string | да | ID заявки в клиентской системе |
initiator |
body | object | да | Пользователь Меркурия, оформляющий операцию |
delivery |
body | object | да | Фактические данные партии: дата, отправитель, получатель, транспорт, входящий ВСД |
deliveryFacts |
body | object | да | Результаты приёмки; решение ACCEPT_ALL, PARTIALLY или RETURN_ALL |
discrepancyReport |
body | object | нет | Акт несоответствия (если данные ВСД и факт расходятся) |
returnedDelivery |
body | object | нет | Возвратный ВСД при частичном или полном возврате |
Оформление исходящей партии и транспортного ВСД; структура — в спецификации операции.
Актуальный список записей складского журнала площадки; структура — в спецификации операции.
submitApplicationRequest (в application.data), а результат забирается receiveApplicationResultRequest; оба шага — синхронные вызовы.RegisterProductionOperation, WithdrawVetDocument, GetVetDocumentByUuid, GetVetDocumentChangesList, GetStockEntryByGuid, GetStockEntryChangesList, MergeStockEntries, ResolveDiscrepancy, CheckShipmentRegionalization, управление пользователями ХС.https://t2-mercury.vetrf.ru/hs, https://t2-accounts.vetrf.ru.| Код | Описание |
|---|---|
некорректный запрос |
Запрос не соответствует схеме |
бизнес-правила |
Заявка не прошла проверку бизнес-правил |
внутренняя ошибка |
Внутренняя ошибка системы |
GetVetDocumentList: до 1000 ВСД за запрос, интервал дат — до 31 дня.Если этого недостаточно — официальная документация: https://help.vetrf.ru/wiki/Ветис.API JSON: https://mcp-everything.ru/api/integrations/vetis-mercury. MCP: https://mcp-everything.ru/mcp