# Ветис.API — Меркурий (ФГИС ВетИС): Погасить входящий ВСД при приёмке товара

Сценарий из mcp-everything. Актуально на 2026-10-24.

Кладовщик принял поставку мяса или молочной продукции — ВСД гасится из учётной системы, а товар попадает в складской журнал Меркурия.

1. Возьми данные ВСД из списка входящих (предыдущий сценарий): отправителя, получателя, партию, транспорт и сам документ.
2. Подай заявку submitApplicationRequest, в application.data — запрос операции ProcessIncomingConsignment (processIncomingConsignmentRequest): localTransactionId, initiator, delivery с фактическими данными (дата, отправитель, получатель, партия, транспорт, сопроводительные документы) и deliveryFacts.
3. В deliveryFacts укажи vetCertificatePresence = ELECTRONIC, результаты docInspection и vetInspection (CORRESPONDS, если всё совпало) и decision: ACCEPT_ALL — принять всё, PARTIALLY — частично, RETURN_ALL — вернуть.
4. Если факт расходится с ВСД больше чем на 5% по объёму, нужен discrepancyReport — акт несоответствия; при возврате — returnedDelivery. Номера транспортных средств обязательны.
5. Результат забери receiveApplicationResultRequest по applicationId. Ошибка бизнес-правил придёт в результате заявки, а не в ответе на подачу — проверяй именно его.

```xml
<!-- Содержимое 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>
```

## Базовые URL

- Боевой: `https://api.vetrf.ru`
- Тестовый: `https://api2.vetrf.ru:8002`
- WSDL v3.0: `https://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.

## Методы сценария

### POST /platform/services/3.0/ApplicationManagementService — submitApplicationRequest: подача заявки

В ответе: `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 | да | Тело заявки: запрос конкретной операции Меркурия |

### POST /platform/services/3.0/ApplicationManagementService — receiveApplicationResultRequest: результат заявки

Идентификатор заявки хранится 3 дня.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `apiKey` | body | string | да | Ключ API |
| `issuerId` | body | string | да | Идентификатор заявителя |
| `applicationId` | body | string | да | ID заявки из ответа submitApplicationRequest |

### POST /platform/services/3.0/ApplicationManagementService — ProcessIncomingConsignment: оформление входящей партии (гашение ВСД)

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `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`; оба шага — синхронные вызовы.
- Справочные объекты (ХС, площадки, продукция) указываются UUID или GUID; при обоих приоритет у UUID.
- При гашении объём без акта несоответствия можно изменить не больше чем на 5%; номера транспортных средств обязательны.
- Другие операции: `RegisterProductionOperation`, `WithdrawVetDocument`, `GetVetDocumentByUuid`, `GetVetDocumentChangesList`, `GetStockEntryByGuid`, `GetStockEntryChangesList`, `MergeStockEntries`, `ResolveDiscrepancy`, `CheckShipmentRegionalization`, управление пользователями ХС.
- Тестовые веб-интерфейсы: `https://t2-mercury.vetrf.ru/hs`, `https://t2-accounts.vetrf.ru`.

## Другие сценарии

- [Получить список входящих ВСД](https://mcp-everything.ru/integrations/vetis-mercury/scenarios/poluchit-spisok-vhodyaschih-vsd.md)
- [Сверить остатки и оформить отгрузку](https://mcp-everything.ru/integrations/vetis-mercury/scenarios/sverit-ostatki-i-oformit-otgruzku.md)

---

Если этого недостаточно — официальная документация: https://help.vetrf.ru/wiki/Ветис.API
Вся интеграция одним документом: https://mcp-everything.ru/integrations/vetis-mercury.md
