К содержанию
Инфорензик

Переход с легаси-контракта

Прежние эндпоинты /v2/compliance/{module}/search отвечают 410 Gone — клиентского трафика на них давно нет. Новый контракт — модули и задачи; эта страница — что поменять при переезде и какие изменения поведения учесть.

Адреса и тело запроса

  • Было POST /v2/compliance/{module}/search
    Стало POST /v2/modules/{key}/execute
  • Было POST /v2/compliance/{module}/search_async
    Стало POST /v2/modules/{key}/execute_async
  • Было плоское тело запроса
    Стало {"input_data": { … }}
  • Было перечень полей зашит в клиенте
    Стало схема читается из GET /v2/modules/{key}
  • Было двухсегментный ключ модуля
    Стало трёхсегментный: категория.юрисдикция.имя (старый — псевдоним)

Адреса статуса и результата задачи не менялись: /v2/task/{task_id}/status и /v2/task/{task_id}/result.

Изменения поведения (20.09.2026)

  • Статусы задач
    Было PENDING / STARTED / PROGRESS / COMPLETED / FAILED
    Стало pending / processing / completed / failed / not_found
  • Валидация входа
    Было 422 + тело Pydantic {"detail": [...]}
    Стало 400 + конверт с текстом в error
  • Префикс task_id
    Было нет
    Стало goq-
  • MCP /v2/mcp
    Было 404
    Стало работает; 120 вызовов/мин на ключ, сверх — 429 + Retry-After
  • Спецификация
    Было Swagger/ReDoc
    Стало OpenAPI 3.0: GET /v2/open-banking/v1.0/openapi.yaml

Сбои источников больше не «чисто»

Прежний рантайм в отдельных модулях (розыск ФССП, общие суды, исполнительные производства, кредитный рейтинг) маскировал сбой источника под результат found: false — проверка, которая не могла состояться, выглядела как «не найдено». Теперь такие ответы приходят как ошибки: конверт с success: false и текстом в error, средства возвращаются автоматически.

Если ваш код трактовал found: false как «чисто» — после перехода обрабатывайте ошибки отдельно (повтор позже), а не как отсутствие находок.