> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Методы сопоставления 1x1 и 2x2 в проверке по базам данных

> Определение результатов 1x1 и 2x2 в Didit: пороги нечёткого поиска имён, правила partialMatchAction и каскадная логика. От $0.05/check.

API [Проверка по базам данных](https://docs.didit.me/ru/core-technology/database-validation/overview.md) Didit сверяет идентификационные данные с официальным реестром актов гражданского состояния, налоговым органом или списком избирателей каждой страны — RENAPER (Аргентина), Receita Federal (Бразилия), Tribunal Electoral (Панама), RENAPO (Мексика), Junta Central Electoral (Доминиканская Республика), Registraduría Nacional (Колумбия) и другими. Оплата взимается за каждый успешный запрос, от **\$0.05/check** без ежемесячных минимальных платежей.

Итоговые результаты формируются на основе данных по отдельным сервисам: **1×1**, когда один реестр возвращает полное совпадение, и **2×2**, когда данные подтверждаются двумя независимыми реестрами. На этой странице описано, как рассчитываются эти результаты, какие пороги нечёткого сопоставления применяются к именам и какая логика принятия решений управляет параметрами `partialMatchAction` и `noMatchAction` в правилах вашего сценария.

## Сопоставление 1×1

Этот метод предполагает сопоставление одного входного элемента данных (как правило, национального идентификатора или аналогичного номера) с нашей базой данных. При прямом совпадении мы подтверждаем личность. Однако если первая попытка оказывается неудачной, мы можем опробовать альтернативные доверенные источники данных по каскадной схеме. Это означает, что проверка продолжается последовательно через разных поставщиков до тех пор, пока мы либо не получим совпадение, либо не исчерпаем все варианты. Важно отметить, что частичное совпадение не останавливает процесс — мы останавливаемся только тогда, когда найдено полное и окончательное совпадение либо установлено, что совпадений нет.

Логика сопоставления 1x1 требует сверки персональных данных пользователя с одним источником для получения статуса Полное совпадение по личности.\*

| Результат верификации | Категория имени | Категория идентификатора | Категория даты рождения |
| :- | :- | :- | :- |
| Полное совпадение | Полное совпадение | Полное совпадение | Любое значение |
| Частичное совпадение | Частичное совпадение | Полное совпадение | Любое значение |
| Нет совпадения | Все остальные комбинации | | |

*\*Применимые источники по стране проверяются до тех пор, пока не будет получено полное совпадение по личности. Если полное совпадение не найдено, система выполняет повторный опрос этих источников для поиска частичного совпадения по личности пользователя.*

> [!NOTE]
>
> Таблица 1×1 выше и таблица 2×2 ниже описывают общую модель, а не гарантию, действующую абсолютно для каждого сервиса. Решающие поля зависят от конкретного сервиса и от передаваемых вами необязательных входных данных: реестр может сопоставлять только те поля, которые в нём содержатся, и те поля, которые вы передаёте, а итоговый результат сервиса определяется полями, которые он фактически сопоставляет. Не каждый сервис сравнивает идентификационный номер, а некоторые сверяют его только при передаче. Например, сервис [Испания - верификация DNI/NIE](https://docs.didit.me/ru/api-reference/database-validation/spain/dni.md) (`esp_dni`) требует имя, дату рождения и адрес, а `national_id` принимает как необязательный параметр. Он всегда сопоставляет имя, дату рождения и адрес, а также сравнивает идентификационный номер, если вы передаёте `national_id`.
>
> Обязательное поле не обязательно является решающим, а необязательное поле вполне может им быть. Обязательное поле необходимо передать, чтобы запрос был принят, а поле, указанное в `source_data`, представляет собой данные, возвращённые реестром. Ни то, ни другое не показывает, какие именно поля определили итоговое решение. Примеры ответов на странице каждого сервиса иллюстрируют лишь один из возможных вариантов ответа, поэтому ключи их объекта `validation` не являются исчерпывающим списком полей, сопоставляемых этим сервисом. На странице справочника API каждого сервиса в разделе [Поддерживаемые страны и сервисы](https://docs.didit.me/ru/core-technology/database-validation/database-validation-supported-countries.md) обязательные и необязательные входные данные перечислены в блоке **Входные данные**.

## Сопоставление 2×2

Этот метод требует сопоставления двух элементов входных данных (например, имени + даты рождения или национального ID + номера телефона) с двумя соответствующими полями в нашей базе данных. Как и в случае сопоставления 1×1, мы используем каскадный подход, последовательно опрашивая несколько источников данных. Мы переходим от шага к шагу, пока не найдем полное совпадение по обоим полям данных. Частичных совпадений или совпадений только по одному полю недостаточно; процесс валидации продолжается до тех пор, пока не будет достигнуто окончательное совпадение по двум полям или пока не будут проверены все источники.

Логика сопоставления 2×2 требует сверки персональных данных пользователя с двумя источниками, чтобы получить статус Полное совпадение личности.\*

| Результат верификации | 1-й источник данных | 2-й источник данных |
| :- | :- | :- |
| Полное совпадение | Имя Полное совпадение + Национальный ID Полное совпадение | Имя Полное совпадение + Национальный ID Полное совпадение |
| Полное совпадение | Имя Полное совпадение + Национальный ID Полное совпадение | Имя Частичное совпадение + Национальный ID Полное совпадение |
| Полное совпадение | Имя Полное совпадение + Национальный ID Полное совпадение | Имя Полное совпадение + Дата рождения Полное совпадение |
| Полное совпадение | Имя Полное совпадение + Национальный ID: любое значение | Имя Полное совпадение + Национальный ID: любое значение |
| Частичное совпадение | Имя Полное совпадение + Национальный ID Полное совпадение | |
| Частичное совпадение | Имя Частичное совпадение + Национальный ID Полное совпадение | |
| Частичное совпадение | Имя Полное совпадение + дата рождения Полное совпадение | |
| Частичное совпадение | Имя Полное совпадение + любое значение национального идентификатора | |
| Нет совпадения | Все остальные комбинации | |

*\*Применимые источники соответствующей страны проверяются до тех пор, пока не будет получено полное совпадение по личности. Если полное совпадение не найдено, система затем неоднократно проверяет эти источники на наличие частичного совпадения по личности пользователя.*

***

## Сопоставление категорий данных и атрибутов

Ниже приведены сценарии, приводящие к результату Полное совпадение для категорий данных имени, даты рождения и ID. Результат Частичное совпадение возможен только для категории имени.

### Сопоставление категории имени

**Полное совпадение** для категории имени засчитывается при выполнении любого из следующих сценариев сопоставления атрибутов данных:

* Конкатенация полного имени Полное совпадение (Имя + Фамилия в совокупности с порогом сходства 85%)
* Имя Полное совпадение + Фамилия Полное совпадение
* Имя Полное совпадение + Материнская фамилия Полное совпадение
* Имя Полное совпадение + Отцовская фамилия Полное совпадение

**Частичное совпадение** для категории имени засчитывается при выполнении любого из следующих сценариев сопоставления атрибутов данных:

* Имя Полное совпадение
* Фамилия Полное совпадение
* Отцовская фамилия Полное совпадение
* Материнская фамилия Полное совпадение
* Материнская фамилия Полное совпадение + Отцовская фамилия Полное совпадение

### Сопоставление категории даты рождения

**Полное совпадение** для категории даты рождения засчитывается только при выполнении следующего сценария сопоставления атрибутов данных:

* Год рождения Полное совпадение + Месяц рождения Полное совпадение + День рождения Полное совпадение

Результат Частичное совпадение для категории даты рождения невозможен.

### Сопоставление категории ID

**Полное совпадение** для категории ID засчитывается только при выполнении следующего сценария сопоставления атрибутов данных:

* Идентификационный номер Полное совпадение

Результат Частичное совпадение для категории ID невозможен.

Категория ID учитывается только тогда, когда сервис сравнивает идентификационный номер. Некоторые сервисы никогда его не сравнивают, а некоторые сравнивают только в том случае, если вы передаёте его в качестве входных данных.

## Нечёткое сопоставление атрибутов данных

Ниже приведены критерии нечёткого сопоставления различных атрибутов данных с источниками по странам.

* **Атрибуты данных имени**
  Чтобы атрибут данных категории «Имя» получил статус Полное совпадение, его посимвольное сходство по Левенштейну с записями в источниках данных должно составлять не менее 70%. Для конкатенации полного имени (объединённые Имя + Фамилия) применяется более высокий порог сходства в 85%. Например, если передан атрибут имени 'Christophel', а фактическим именем является 'Christopher', на основе логики нечёткого сопоставления возвращается Полное совпадение. Эта система применима к атрибутам данных *Имя*, *Фамилия*, *Отчество* и *Матронимическое имя*.

* **Атрибуты данных даты рождения и удостоверения личности**
  Мы не применяем нечёткое сопоставление к атрибутам данных в категориях «Дата рождения» или «Удостоверение личности». Для этих полей требуется точное совпадение.

### Примеры

Ниже приведены примеры входных значений атрибутов данных, которые удовлетворяют критериям логики нечёткого сопоставления и дают результат Полное совпадение.

| Атрибут данных | Входные данные | Запись в источнике данных | Результат |
| :- | :- | :- | :- |
| first\_name | Christopher | Christopher | Полное совпадение |
| first\_name | Christophel | Christopher | Полное совпадение |
| first\_name | Chris | Christopher | Нет совпадения |
| last\_name | Smith | Smith | Полное совпадение |
| last\_name | Smyth | Smith | Полное совпадение |
| last\_name | Smitty | Smith | Нет совпадения |

## См. также

* [Обзор Проверки по базам данных](https://docs.didit.me/ru/core-technology/database-validation/overview.md) — как устроен весь процесс работы API, поддерживаемые реестры, цены.
* [Коды результатов](https://docs.didit.me/ru/core-technology/database-validation/database-validation-outcome-codes.md) — полный список кодов ответов провайдеров (умерший, несовершеннолетний, документ не найден, биометрическое несовпадение).
* [Предупреждения](https://docs.didit.me/ru/core-technology/database-validation/database-validation-warnings.md) — сообщения, которые мы возвращаем, когда сервис не может быть запущен из-за отсутствия входных данных.
* [Поддерживаемые страны и сервисы](https://docs.didit.me/ru/core-technology/database-validation/database-validation-supported-countries.md) — все действующие реестры, обязательные поля и цена за запрос.
* [Отчёты](https://docs.didit.me/ru/core-technology/database-validation/database-validation-report.md) — ежемесячный экспорт биллинга по сервисам.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.