Сценарий из mcp-everything. Актуально на 2026-10-24.
Учётная система предприятия видит ветеринарные сопроводительные документы на поставки и готовит приёмку заранее.
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
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 предприятия |
submitApplicationRequest (в application.data), а результат забирается receiveApplicationResultRequest; оба шага — синхронные вызовы.RegisterProductionOperation, WithdrawVetDocument, GetVetDocumentByUuid, GetVetDocumentChangesList, GetStockEntryByGuid, GetStockEntryChangesList, MergeStockEntries, ResolveDiscrepancy, CheckShipmentRegionalization, управление пользователями ХС.https://t2-mercury.vetrf.ru/hs, https://t2-accounts.vetrf.ru.Если этого недостаточно — официальная документация: https://help.vetrf.ru/wiki/Ветис.API Вся интеграция одним документом: https://mcp-everything.ru/integrations/vetis-mercury.md