Перейти к основному содержимому

Идентификаторы закупок и контрактов (ЕИС)

Зачем и для кого

Инструкция для аналитиков и разработчиков, которые собирают собственный регистр из XML-выгрузок ЕИС, стыкуют витрину с Clearspending или разбирают колонки идентификаторов в CSV. Здесь — логика сущностей и ключей; точные имена XML-элементов и строковые форматы задаются актуальными XSD и методичкой на портале ЕИС и меняются вместе с регламентом оператора.

Входные данные

  • Поток документов — извещения, протоколы, контракты, планы-графики (перечень типов — в сведениях о закупках).
  • Поля идентификаторов из выбранной схемы XML или экспорта: как минимум различите идентификатор закупки / извещения / процедуры и идентификатор контракта (в т.ч. реестровый номер контракта в смысле витрины ЕИС).
  • Признак правового режима44-ФЗ vs 223-ФЗ; в смешанных архивах без отбора агрегаты искажаются.

Инструменты

  • Документация и XSD на zakupki.gov.ru (см. XML-выгрузки).
  • XML-парсер (Python lxml, xml.etree и т.д.) или SQL после загрузки в таблицы.
  • Для точечных проверок без сборки архивов — REST API Clearspending с параметром regnum (не официальный дубль ЕИС, удобен для валидации).

Шаги

  1. Зафиксируйте правовой режим по полям схемы или пути файла (44 / 223); отфильтруйте поток до склейки таблиц.
  2. Постройте модель связей: извещение и протоколы относятся к процедуре закупки; контракт подписывается по результатам процедуры — в XML связь выражена ссылками и общими идентификаторами в логике той версии схемы, которую вы парсите (сверьте с XSD).
  3. Реестровый номер контракта используйте как стабильный публичный ключ контракта на витрине в паре с версией документа, если схема предусматривает версионирование — иначе при обновлении карточки возможны дубликаты или «расхлопывание» одного договора.
  4. Не смешивайте внутренние идентификаторы веб-карточки (например, параметры contractInfoId в URL портала) с реестровым номером без проверки по XSD/выгрузке: для интеграций опирайтесь на поля XML, а не на устойчивость формата URL.
  5. Стыковка с бюджетом — по КБК, ИНН, КПП и иным полям если они есть в конкретном типе документа; отсутствие КБК в XML не заполняется «из головы».
  6. Для организаций нормализуйте реквизиты по ИНН, КПП, ОГРН.

Воспроизводимый пример

Извлечь query-параметры из URL карточки на портале (удобно для ручной трассировки; не замена полям XML):

from urllib.parse import parse_qs, urlparse


def url_query_keys(url: str) -> dict[str, list[str]]:
return parse_qs(urlparse(url.strip()).query)


# Подставьте URL из адресной строки браузера — имена параметров меняются между разделами портала
sample = "https://zakupki.gov.ru/epz/contract/contractCard/common-info.html?contractInfoId=1234567890"
print(url_query_keys(sample))
# {'contractInfoId': ['1234567890']}

Запрос одного контракта через публичный API Clearspending по regnum (тот же идентификатор, что в примере how-to Clearspending; подставьте актуальный номер из своей выборки):

curl -sS -G "https://openapi.clearspending.ru/restapi/v3/contracts/get/" \
--data-urlencode "regnum=0173100000414000011" \
-H "User-Agent: Mozilla/5.0 (compatible; eis-id-check/1.0)" | head -c 500

Проверка результата

  • После сборки регистра контрактов нет неожиданных дубликатов одного реестрового номера с разными суммами без объяснения версий или исправлений.
  • Доля документов без известного ключа связи к процедуре согласована с ожидаемыми типами файлов в архиве (часть сведений публикуется отдельными комплектами).
  • Выборки по 44-ФЗ и 223-ФЗ не смешаны в одном отчёте без явной метки режима.

Ограничения и типовые ошибки

  • Один реестровый номер в гражданском API и в XML должен совпадать по смыслу, но юридически значимая редакция документа — на ЕИС; зеркала могут отставать.
  • Игнорирование 223-ФЗ в общем потоке — завышение объёмов «госзакупок» в смысле 44-ФЗ.
  • Путаница ОГРН организации с номером контракта или внутренним uuid в стороннем API — разные пространства идентификаторов.
  • Жёсткая привязка кладки URL портала в продакшен-пайплайне — ломается при смене маршрутов; для массовой обработки используйте официальные XML/СОИ (см. карточку ЕИС).

Связанные страницы