{"name":"Ветис.API — Меркурий (ФГИС ВетИС)","vendor":"Россельхознадзор (ФГБУ «ВНИИЗЖ»)","industry":"gov","summary":"Универсальный шлюз Ветис.API связывает сторонние информационные системы с компонентами ВетИС (Меркурий, Хорриот, Цербер, Икар) и даёт доступ к справочникам и реестрам. Для хозяйствующих субъектов основной сервис — ApplicationManagementService Меркурия: оформление производственных, транспортных и входящих партий, гашение и аннулирование ВСД, получение ВСД и записей складского журнала, управление пользователями. Интерфейс — SOAP; работа с заявками псевдо-асинхронная: подать заявку, затем запросить результат.","docsUrl":"https://help.vetrf.ru/wiki/Ветис.API","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"poluchit-spisok-vhodyaschih-vsd","title":"Получить список входящих ВСД","summary":"Учётная система предприятия видит ветеринарные сопроводительные документы на поставки и готовит приёмку заранее.","steps":["Получи доступ: подай заявку через форму aplms.vetrf.ru (сначала тестовый контур t2-aplms.vetrf.ru). Придут логин и пароль для базовой аутентификации и apiKey; в запросах также нужен issuerId — идентификатор заявителя.","Подай заявку submitApplicationRequest на POST /platform/services/3.0/ApplicationManagementService: apiKey, application.serviceId = mercury-g2b.service:3.0, issuerId, issueDate, а в application.data — запрос операции GetVetDocumentList (getVetDocumentListRequest).","В запросе укажи initiator.login — логин пользователя Меркурия (логин базовой аутентификации не подойдёт), enterpriseGuid площадки, vetDocumentType = INCOMING, vetDocumentStatus = CONFIRMED и issueDateInterval — не длиннее 31 дня. Страницы — listOptions.count (до 1000) и offset.","В ответе на подачу — applicationId. Забери результат заявкой receiveApplicationResultRequest с apiKey, issuerId и applicationId; повторяй с паузой, пока заявка в обработке. applicationId хранится 3 дня.","В результате — vetDocumentList с атрибутами total, offset и count; если total больше полученного, запроси следующую страницу."],"code":"cat > list.xml <<'XML'\n<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"\n  xmlns:apldef=\"http://api.vetrf.ru/schema/cdm/application/ws-definitions\"\n  xmlns:apl=\"http://api.vetrf.ru/schema/cdm/application\"\n  xmlns:merc=\"http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v3\"\n  xmlns:vd=\"http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2\"\n  xmlns:bs=\"http://api.vetrf.ru/schema/cdm/base\"\n  xmlns:dt=\"http://api.vetrf.ru/schema/cdm/dictionary/v2\">\n  <SOAP-ENV:Body>\n    <apldef:submitApplicationRequest>\n      <apldef:apiKey>APIKEY</apldef:apiKey>\n      <apl:application>\n        <apl:serviceId>mercury-g2b.service:3.0</apl:serviceId>\n        <apl:issuerId>ISSUER_ID</apl:issuerId>\n        <apl:issueDate>2026-10-24T10:00:00</apl:issueDate>\n        <apl:data>\n          <merc:getVetDocumentListRequest>\n            <merc:localTransactionId>list20261024</merc:localTransactionId>\n            <merc:initiator><vd:login>mercury_user</vd:login></merc:initiator>\n            <bs:listOptions><bs:count>1000</bs:count><bs:offset>0</bs:offset></bs:listOptions>\n            <vd:vetDocumentType>INCOMING</vd:vetDocumentType>\n            <vd:vetDocumentStatus>CONFIRMED</vd:vetDocumentStatus>\n            <vd:issueDateInterval>\n              <bs:beginDate>2026-10-01T00:00:00</bs:beginDate>\n              <bs:endDate>2026-10-24T23:59:59</bs:endDate>\n            </vd:issueDateInterval>\n            <dt:enterpriseGuid>ENTERPRISE_GUID</dt:enterpriseGuid>\n          </merc:getVetDocumentListRequest>\n        </apl:data>\n      </apl:application>\n    </apldef:submitApplicationRequest>\n  </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>\nXML\n\ncurl -s -u \"$VETIS_LOGIN:$VETIS_PASSWORD\" -H 'Content-Type: text/xml; charset=utf-8' \\\n  --data-binary @list.xml https://api.vetrf.ru/platform/services/3.0/ApplicationManagementService\n# в ответе applicationId — передай его в receiveApplicationResultRequest:\n\ncat > result.xml <<'XML'\n<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"\n  xmlns:apldef=\"http://api.vetrf.ru/schema/cdm/application/ws-definitions\">\n  <SOAP-ENV:Body>\n    <apldef:receiveApplicationResultRequest>\n      <apldef:apiKey>APIKEY</apldef:apiKey>\n      <apldef:issuerId>ISSUER_ID</apldef:issuerId>\n      <apldef:applicationId>APPLICATION_ID</apldef:applicationId>\n    </apldef:receiveApplicationResultRequest>\n  </SOAP-ENV:Body>\n</SOAP-ENV:Envelope>\nXML\n\ncurl -s -u \"$VETIS_LOGIN:$VETIS_PASSWORD\" -H 'Content-Type: text/xml; charset=utf-8' \\\n  --data-binary @result.xml https://api.vetrf.ru/platform/services/3.0/ApplicationManagementService","language":"bash","methods":["POST /platform/services/3.0/ApplicationManagementService submitApplicationRequest","POST /platform/services/3.0/ApplicationManagementService receiveApplicationResultRequest","POST /platform/services/3.0/ApplicationManagementService GetVetDocumentList"]},{"id":"pogasit-vhodyaschiy-vsd-pri-priemke","title":"Погасить входящий ВСД при приёмке товара","summary":"Кладовщик принял поставку мяса или молочной продукции — ВСД гасится из учётной системы, а товар попадает в складской журнал Меркурия.","steps":["Возьми данные ВСД из списка входящих (предыдущий сценарий): отправителя, получателя, партию, транспорт и сам документ.","Подай заявку submitApplicationRequest, в application.data — запрос операции ProcessIncomingConsignment (processIncomingConsignmentRequest): localTransactionId, initiator, delivery с фактическими данными (дата, отправитель, получатель, партия, транспорт, сопроводительные документы) и deliveryFacts.","В deliveryFacts укажи vetCertificatePresence = ELECTRONIC, результаты docInspection и vetInspection (CORRESPONDS, если всё совпало) и decision: ACCEPT_ALL — принять всё, PARTIALLY — частично, RETURN_ALL — вернуть.","Если факт расходится с ВСД больше чем на 5% по объёму, нужен discrepancyReport — акт несоответствия; при возврате — returnedDelivery. Номера транспортных средств обязательны.","Результат забери receiveApplicationResultRequest по applicationId. Ошибка бизнес-правил придёт в результате заявки, а не в ответе на подачу — проверяй именно его."],"code":"<!-- Содержимое apl:data в submitApplicationRequest; обёртка — как в сценарии выше -->\n<merc:processIncomingConsignmentRequest>\n  <merc:localTransactionId>inc20261024a</merc:localTransactionId>\n  <merc:initiator><vd:login>mercury_user</vd:login></merc:initiator>\n  <merc:delivery>\n    <vd:deliveryDate>2026-10-24T09:30:00</vd:deliveryDate>\n    <vd:consignor><!-- ХС и площадка отправителя из ВСД --></vd:consignor>\n    <vd:consignee><!-- ХС и площадка получателя --></vd:consignee>\n    <vd:consignment><!-- продукция, объём, единица измерения по факту --></vd:consignment>\n    <vd:transportInfo><!-- тип и номер транспортного средства --></vd:transportInfo>\n    <vd:accompanyingForms><!-- ссылка на гасимый ВСД и ТТН --></vd:accompanyingForms>\n  </merc:delivery>\n  <merc:deliveryFacts>\n    <vd:vetCertificatePresence>ELECTRONIC</vd:vetCertificatePresence>\n    <vd:docInspection><vd:result>CORRESPONDS</vd:result></vd:docInspection>\n    <vd:vetInspection><vd:result>CORRESPONDS</vd:result></vd:vetInspection>\n    <vd:decision>ACCEPT_ALL</vd:decision>\n  </merc:deliveryFacts>\n</merc:processIncomingConsignmentRequest>","language":"xml","methods":["POST /platform/services/3.0/ApplicationManagementService submitApplicationRequest","POST /platform/services/3.0/ApplicationManagementService receiveApplicationResultRequest","POST /platform/services/3.0/ApplicationManagementService ProcessIncomingConsignment"]},{"id":"sverit-ostatki-i-oformit-otgruzku","title":"Сверить остатки и оформить отгрузку","summary":"Перед отгрузкой покупателю — проверить, что партия есть в складском журнале, и оформить транспортный ВСД.","steps":["Получи остатки площадки: заявка submitApplicationRequest с операцией GetStockEntryList (getStockEntryListRequest) — в результате актуальные записи складского журнала с объёмами и GUID записей.","Сверь их со своим складом: расхождение значит, что какая-то приёмка или списание не дошли до Меркурия.","Оформи отгрузку операцией PrepareOutgoingConsignment: в ней указываются запись складского журнала, из которой списывается объём, получатель и транспорт. Полная структура — в спецификации операции на help.vetrf.ru.","Справочные объекты (ХС, площадки, продукция) указывай по UUID или GUID; если передать оба, приоритет у UUID.","Отлаживай на тестовом контуре api2.vetrf.ru:8002 и проверяй результат в веб-интерфейсе t2-mercury.vetrf.ru."],"code":"<!-- Содержимое apl:data в submitApplicationRequest -->\n<merc:getStockEntryListRequest>\n  <merc:localTransactionId>stock20261024</merc:localTransactionId>\n  <merc:initiator><vd:login>mercury_user</vd:login></merc:initiator>\n  <bs:listOptions><bs:count>1000</bs:count><bs:offset>0</bs:offset></bs:listOptions>\n  <dt:enterpriseGuid>ENTERPRISE_GUID</dt:enterpriseGuid>\n</merc:getStockEntryListRequest>","language":"xml","methods":["POST /platform/services/3.0/ApplicationManagementService submitApplicationRequest","POST /platform/services/3.0/ApplicationManagementService PrepareOutgoingConsignment","POST /platform/services/3.0/ApplicationManagementService GetStockEntryList"]}],"baseUrls":[{"label":"Боевой","url":"https://api.vetrf.ru"},{"label":"Тестовый","url":"https://api2.vetrf.ru:8002"},{"label":"WSDL v3.0","url":"https://api.vetrf.ru/schema/platform/services/v3.0b-last/ams-mercury-g2b.service_v3.0.wsdl"}],"auth":{"type":"basic","description":"Базовая аутентификация логином и паролем, которые присылаются письмом после получения доступа; затем проверяется `apiKey`, передаваемый в теле запроса. Заявка на доступ подаётся через форму `https://t2-aplms.vetrf.ru/pub/` (тестовый контур) или `https://aplms.vetrf.ru/pub/` (продуктивный, нужна УКЭП руководителя). Поддержка — api@vetrf.ru.","example":""},"methods":[{"id":"POST /platform/services/3.0/ApplicationManagementService submitApplicationRequest","title":"submitApplicationRequest: подача заявки","httpMethod":"POST","path":"/platform/services/3.0/ApplicationManagementService","description":"В ответе: `applicationId`, `status`, `rcvDate`.","params":[{"name":"apiKey","in":"body","type":"string","required":true,"description":"Ключ API"},{"name":"application.serviceId","in":"body","type":"string","required":true,"description":"mercury-g2b.service:3.0"},{"name":"application.issuerId","in":"body","type":"string","required":true,"description":"Идентификатор заявителя"},{"name":"application.issueDate","in":"body","type":"string","required":true,"description":"Дата подачи заявки"},{"name":"application.data","in":"body","type":"object","required":true,"description":"Тело заявки: запрос конкретной операции Меркурия"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /platform/services/3.0/ApplicationManagementService receiveApplicationResultRequest","title":"receiveApplicationResultRequest: результат заявки","httpMethod":"POST","path":"/platform/services/3.0/ApplicationManagementService","description":"Идентификатор заявки хранится 3 дня.","params":[{"name":"apiKey","in":"body","type":"string","required":true,"description":"Ключ API"},{"name":"issuerId","in":"body","type":"string","required":true,"description":"Идентификатор заявителя"},{"name":"applicationId","in":"body","type":"string","required":true,"description":"ID заявки из ответа submitApplicationRequest"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /platform/services/3.0/ApplicationManagementService GetVetDocumentList","title":"GetVetDocumentList: список ВСД","httpMethod":"POST","path":"/platform/services/3.0/ApplicationManagementService","description":"Передаётся в `application.data` как `getVetDocumentListRequest`. В ответе — `vetDocumentList` с атрибутами `total`, `offset`, `count`.","params":[{"name":"localTransactionId","in":"body","type":"string","required":false,"description":"ID заявки в клиентской системе"},{"name":"initiator.login","in":"body","type":"string","required":true,"description":"Логин пользователя Меркурия (логин базовой аутентификации не подходит)"},{"name":"listOptions.count","in":"body","type":"integer","required":false,"description":"Количество, по умолчанию 100, максимум 1000"},{"name":"listOptions.offset","in":"body","type":"integer","required":false,"description":"Смещение, по умолчанию 0"},{"name":"vetDocumentType","in":"body","type":"string","required":false,"description":"INCOMING, OUTGOING, PRODUCTIVE, TRANSPORT, RETURNABLE"},{"name":"vetDocumentStatus","in":"body","type":"string","required":false,"description":"CONFIRMED, WITHDRAWN, UTILIZED"},{"name":"issueDateInterval.beginDate","in":"body","type":"string","required":false,"description":"Начало интервала оформления (интервал не больше 31 дня)"},{"name":"issueDateInterval.endDate","in":"body","type":"string","required":false,"description":"Конец интервала"},{"name":"consignor","in":"body","type":"object","required":false,"description":"Фильтр по отправителю (не для PRODUCTIVE)"},{"name":"referencedDocument","in":"body","type":"object","required":false,"description":"Поиск по связанному документу (нужен vetDocumentType)"},{"name":"enterpriseGuid","in":"body","type":"string","required":true,"description":"GUID предприятия"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /platform/services/3.0/ApplicationManagementService ProcessIncomingConsignment","title":"ProcessIncomingConsignment: оформление входящей партии (гашение ВСД)","httpMethod":"POST","path":"/platform/services/3.0/ApplicationManagementService","description":"","params":[{"name":"localTransactionId","in":"body","type":"string","required":true,"description":"ID заявки в клиентской системе"},{"name":"initiator","in":"body","type":"object","required":true,"description":"Пользователь Меркурия, оформляющий операцию"},{"name":"delivery","in":"body","type":"object","required":true,"description":"Фактические данные партии: дата, отправитель, получатель, транспорт, входящий ВСД"},{"name":"deliveryFacts","in":"body","type":"object","required":true,"description":"Результаты приёмки; решение ACCEPT_ALL, PARTIALLY или RETURN_ALL"},{"name":"discrepancyReport","in":"body","type":"object","required":false,"description":"Акт несоответствия (если данные ВСД и факт расходятся)"},{"name":"returnedDelivery","in":"body","type":"object","required":false,"description":"Возвратный ВСД при частичном или полном возврате"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /platform/services/3.0/ApplicationManagementService PrepareOutgoingConsignment","title":"PrepareOutgoingConsignment: оформление транспортной партии","httpMethod":"POST","path":"/platform/services/3.0/ApplicationManagementService","description":"Оформление исходящей партии и транспортного ВСД; структура — в спецификации операции.","params":[],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /platform/services/3.0/ApplicationManagementService GetStockEntryList","title":"GetStockEntryList: записи складского журнала","httpMethod":"POST","path":"/platform/services/3.0/ApplicationManagementService","description":"Актуальный список записей складского журнала площадки; структура — в спецификации операции.","params":[],"requestExample":"","responseExample":"","docsUrl":""}],"codeExamples":[],"errors":[{"code":"некорректный запрос","description":"Запрос не соответствует схеме"},{"code":"бизнес-правила","description":"Заявка не прошла проверку бизнес-правил"},{"code":"внутренняя ошибка","description":"Внутренняя ошибка системы"}],"limits":"- `GetVetDocumentList`: до 1000 ВСД за запрос, интервал дат — до 31 дня.\n- Результат заявки хранится 3 дня.","gotchas":["Все операции передаются через `submitApplicationRequest` (в `application.data`), а результат забирается `receiveApplicationResultRequest`; оба шага — синхронные вызовы.","Справочные объекты (ХС, площадки, продукция) указываются UUID или GUID; при обоих приоритет у UUID.","При гашении объём без акта несоответствия можно изменить не больше чем на 5%; номера транспортных средств обязательны.","Другие операции: `RegisterProductionOperation`, `WithdrawVetDocument`, `GetVetDocumentByUuid`, `GetVetDocumentChangesList`, `GetStockEntryByGuid`, `GetStockEntryChangesList`, `MergeStockEntries`, `ResolveDiscrepancy`, `CheckShipmentRegionalization`, управление пользователями ХС.","Тестовые веб-интерфейсы: `https://t2-mercury.vetrf.ru/hs`, `https://t2-accounts.vetrf.ru`."],"slug":"vetis-mercury","version":2,"updatedAt":"2026-10-24T17:05:38.455Z","sources":[{"title":"Компонент Ветис.API","url":"https://help.vetrf.ru/wiki/Ветис.API","kind":"research","addedAt":"2026-10-17T07:47:12.547Z"},{"title":"Подсистема обработки заявок в Ветис.API","url":"https://help.vetrf.ru/wiki/Подсистема_обработки_заявок_в_Ветис.API","kind":"research","addedAt":"2026-10-17T07:47:12.547Z"},{"title":"Профиль API 3.0 Меркурий","url":"https://help.vetrf.ru/wiki/MercuryG2B:Services:v3.0","kind":"research","addedAt":"2026-10-17T07:47:12.547Z"},{"title":"GetVetDocumentList v3.0","url":"https://help.vetrf.ru/wiki/MercuryG2B:GetVetDocumentList:v3.0","kind":"research","addedAt":"2026-10-17T07:47:12.547Z"},{"title":"ProcessIncomingConsignment v3.0","url":"https://help.vetrf.ru/wiki/MercuryG2B:ProcessIncomingConsignment:v3.0","kind":"research","addedAt":"2026-10-17T07:47:12.547Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-17T07:47:12.547Z"},{"title":"scenarios-vetis-mercury.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:28.283Z"}],"logoUrl":null}