Проблема: дубли контрагентов при смене КПП

Коллеги, проектирую алгоритм дедубликации и обновления контрагентов РФ через Dadata.

Классическая привязка к ИНН+КПП плодит дубли при переездах юрлиц и ломает иерархию филиалов. Задача – добиться корректного обновления карточки с сохранением истории (версионности) старых КПП, а не создавать клонов.

Как мне видится решение (каскадный алгоритм):

1. Ищем по ОГРН. Не найден – создаем карточку (INSERT). Найден – идем дальше.

2. Сверяем ИНН. Не совпадает – STOP, отправляем инцидент в Inbox на ручной разбор (защита от реорганизаций/слияний).

3. Маршрутизируем по branch_type:

MAIN (Голова): если КПП изменился – UPDATE карточки (новый адрес+КПП). Старые данные убираем в исторический архив (SCD Type 2).

BRANCH (Филиал): ищем по КПП внутри найденного ОГРН. 0 совпадений = INSERT нового ОП. 1 совпадение = UPDATE. >1 совпадения = STOP, ручной разбор (защита от схлопывания нескольких ОП с одним КПП в одном районе).

4. Отлов скрытых ОП (вне ЕГРЮЛ): если на запрос связки ИНН+КПП Dadata отдает MAIN, но КПП не совпадает с запрошенным – STOP, ручной разбор (автоматически голову не обновляем).

5. Также в ручной Inbox уходят: отсутствие ОГРН, статус «Ликвидация».

Вопрос к экспертам: Коллеги по MDM/НСИ, кто уже обкатывал подобную гибридную логику в проде? Какие неочевидные подводные камни со стороны ЕГРЮЛ или Dadata я здесь не учел? Буду благодарен за обратную связь и ваш опыт!

#MDM #НСИ #КачествоДанных #Архитектура #Dadata

Проблема: дубли контрагентов при смене КПП | Сетка — социальная сеть от hh.ru