Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »


Сервіс перевірки автентичності особи на фото.


Сервіс дозволяє аналізувати фотографії клієнтів в кредитних заявках:

  • верифікація клієнта (підтвердження особи),

  • запобігання шахрайству,

  • виявлення фактів крадіжки особистості - злочин, при якому персональні дані людини використовуються для незаконного отримання матеріальної вигоди (окремі випадки: фальсифікація і підробка документів, в найпростішому випадку - заміна фото в паспорті).

В основі сервісу фотоверифікаціі УБКІ - Microsoft Face API


Схема роботи сервісу фотоверифікаціі

Технологічна схема сервісу

Вимоги до фотографії

 Детальніше

1. Максимальний розмір запиту із закодованою фотографією - 2 МБ.

2. Тип файлу - jpeg/jpg

3. XML запит - фото base64

4. Більш висока якість зображення особи означає кращу точність розпізнавання: фронтальний, прозорий і розмір особи - 200x200 пікселів (100 пікселів між очима) або більше.

5. Площа особи на фотографії повинна становити максимальну можливу частку від усього зображення;

6. Фотографія повинна бути чітка, не розмита;

7. Колір і яскравість фону повинні забезпечувати надійне визначення контуру голови.

8. Розташування та освітлення:

- Розташування голови - без поворотів, прямо, погляд спрямований строго на камеру. Нахили або повороти голови в будь-якому напрямку або зміни фокуса особи приведуть до спотворення результатів порівняння;

- На фоні не повинно бути тіней від голови, не повинно бути тіней на обличчі або будь-яких предметів;

- На зображеннях особи не рекомендується закритих очей; волосся, що закривають очі і обличчя;

- На зображеннях осіб не рекомендується світлових відблисків і тіней;

- Не рекомендуються фото з фоном: вулиця, машина, паркани, дерева та ін.

9. Окуляри і головні убори:

- На зображеннях не рекомендуються елементи одягу, що закривають (частково або повністю) особу, тобто капелюхів, хусток і т.д .; товстих оправ окулярів, які деформують риси обличчя;

- На зображеннях не рекомендується відображення спалахів або підсвічуваних відображень в склах лінз або окулярів.

10. Вираз і кадр:

- За зображенням обличчя не рекомендується наявність осіб інших людей;

- Погляд на камеру повинен бути з нейтральним виразом обличчя і закритим ротом.

Request JSON
( ** параметри передаються опціонально)

  body:

{

"doc": {

"ubki": {

"req_envelope": {

"req_xml": {

"request": {

"i": {

"ident": {

"okpo": "РНОКПП (ІПН) (для фіз.осіб)/ЄДРПОУ (для юр.осіб)",

"lname": "**Прізвище",

"fname": "**Ім'я",

"mname": "**По батькові",

"bdate": "**Дата народження"

},

"fotoverif": {

"freqtype": "Тип запиту",

"inn": "РНОКПП (ІПН)",

"facelogic": "Тип алгоритму пошуку особи",

"foto": "base64(Фото)",

"fotoext": "Розширення до фото вхідної заявки (jpeg)",

"phone": "Телефон для порівняння"

},

"reqlng": "Мова критеріїв пошуку (Код із дов.23)"

},

"version": "1.0",

"reqtype": "Код шаблону (Код із дов.49): Звіт 'Фотоверифікація' - 17",

"reqreason": "Мета подання запиту (Код із дов.24)"

},

"descr": "Об'єкт запиту"

},

"descr": "Конверт запиту"

},

"sessid": "Сесійний ключ (отримуємо із API авторизації)"

}

}

}

Response JSON

 body:

{

"ubkidata": {

"tech": {

"trace": {

"step": {

"name": "Найменування кроку",

"stm": "Дата штамп старту кроку",

"ftm": "Дата штамп фінішу кроку"

}

},

"error": {

"errtype": "Код помилки(Код із дов.0)",

"errtext": "Текст помилки(Значення із дов.0)"

},

"reqinfo": {

"reqid": "Вихідний ІД запиту, згенерований УБКІ"

},

"billing": {

"balance": {

"value": "Сума балансу",

"date": "Дата",

"time": "Час"

}

}

},

"comp": [

{

"fotoverif": {

"grey": {

"inn": "РНОКПП (ІПН), за яким спрацював реєстр запитів",

"foto": "base64 (Фото) фотографія особи з реєстру запитів",

"fotoext": "Розширення до фото особи з реєстру запитів",

"datefoto": "Дата фотографії з реєстру запитів",

"confidence": "Міра схожості осіб при порівнянні з фото з реєстру запитів",

"algsearch": "Тип пошуку (1 - по заданому РНОКПП (ІПН), 2 - по заданій фотографії)",

"algsearchdescr": "Тип пошуку в текстовому вигляді"

},

"resultsearch": {

"state": "Статус фіз.особи (missed- зниклий безвісти, wanted - особа, які переховуються від органів влади (в розшуку))",

"category": "Класифікація статусу фіз.особи в текстовому вигляді",

"lnameua": "Прізвище українською",

"fnameua": "Ім'я українською",

"mnameua": "По батькові українською",

"lnameru": "Прізвище російською",

"fnameru": "Ім'я російською",

"mnameru": "По батькові російською",

"bdate": "Дата народження",

"lostdate": "Дата зникнення",

"lostplace": "Місце зникнення",

"restraint": "Запобіжний захід",

"contact": "Контакти для інформування",

"confidence": "Міра схожості осіб при порівнянні з фото з бази зниклих безвісти",

"foto": "base64 (Фото) фотографія особи з бази зниклих безвісти",

"fotoext": "Розширення до фото особи з бази зниклих безвісти"

},

"freqtype": "Тип запиту (1 - у своїй базі фото, 2 - в базі фото інших банків, 3 - порівняння двох осіб на фото, 4 - зарезервовано, 5 - в базі фото скомпрометованих осіб, 6 - порівняння з фото з документа, 7 - порівняння двох облич на одному фото, наприклад, особа з паспорта і обличчя людини, що тримає паспорт)",

"bdfd": "Ознака перевірки по БД фото скомпрометованих осіб (Код із дов.47)",

"fotofd": "base64 (Фото) фотографія скомпрометованої особи",

"fotoextfd": "Розширення до фото скомпрометованої особи",

"commentfd": "Коментар за результатами порівняння",

"verifclient": "Ознака збігу фото (Код із дов.47)",

"fotovc": "base64 (Фото) еталонної фотографії",

"fotoextvc": "Розширення до фото еталонної фотографії",

"commentvc": "Коментар за результатами порівняння з еталонною фотографією",

"confidencefd": "Міра схожості осіб при порівнянні з фото скомпрометованої особи",

"confidencevc": "Міра схожості осіб на фотографіях клієнтів",

"datefotovc": "Дата еталонної фотографії",

"phonematch": "Результат звірки телефонів",

"phonematchref": "Результат звірки телефонів в текстовому вигляді"

},

"id": "16",

"descr": "Назва компоненти"

},

{

"pret": {

"pretension": {

"inn": "РНОКПП (ІПН) (для фіз.осіб)/ЄДРПОУ (для юр.осіб)",

"crdeal": "Ідентифікатор угоди (референс)",

"source": "Вид оскарження (Код із дов.48)",

"sourceref": "Вид оскарження (Значення із дов.48)",

"claim": "Предмет оскарження (Код із дов.69)",

"claimref": "Предмет оскарження (Значення із дов.69)",

"vdate": "Дата створення заявки"

},

"commentcki": {

"comment": "Коментар суб'єкта кредитної історії",

"vdate": "Дата створення коментаря"

},

"plost": {

"pser": "Серія паспорта, заявлено СКІ як загублений (крадіжка)",

"pnom": "Номер паспорта, заявлено СКІ як загублений (крадіжка)",

"crdate": "Дата створення заявки на втрату/крадіжку паспорта СКІ в УБКІ",

"ldate": "Зазначена в заявці дата втрати/крадіжки паспорта СКІ в УБКІ"

},

"changedeal": {

"crdeal": "Ідентифікатор угоди (референс)",

"changecode": "Код причини коригування/видалення даних (Код із дов.62)",

"changeref": "Текст причини коригування/видалення даних (Значення із дов.62)",

"vdate": "Дата коригування/видалення даних"

},

"freezedate": "Дата підключення опції FREEZE",

"nonewdealcomment": "Коментар",

"nonewdeal": "Ознака небажання оформлювати нові кредитні продукти, статус підключення опції FREEZE: 0 - не включена, 1 - включена",

"nonewdealref": "Значення ознаки небажання оформлювати нові кредитні продукти, статус підключення опції FREEZE - 0-ні (не підключена опція), 1-так (підключена опція)",

"inn": "РНОКПП (ІПН) (для фіз.осіб)/ЄДРПОУ (для юр.осіб)"

},

"id": "18",

"descr": "Назва компоненти"

},

{

"person": {

"bdate": "Дата народження",

"lngref": "Мова надання блоку (Значення із дов.23)",

"lng": "Мова надання блоку (Код із дов.23)",

"mname": "По батькові",

"fname": "Ім'я",

"lname": "Прізвище",

"inn ": "РНОКПП (ІПН) СКІ",

},

"id": "72",

"descr": "Пошук по ПІБ+ДР при результаті більше 1 особи (Наявність компоненти визначається знаходженням більше 1 людини у разі пошуку за ПІБ+ДР)"

}

]

}

}

Request XML
( ** параметри передаються опціонально)

  body:

<?xml version="1.0" encoding="utf-8"?>

<doc>

<ubki sessid="Сесійний ключ (отримуємо із API авторизації)">

<req_envelope descr="Конверт запиту">

<req_xml descr="Об'єкт запиту">

<!-- Параметри запиту -->

<request version="1.0" reqtype="Код шаблону (Код із дов.49): Звіт 'Фотоверифікація' - 17" reqreason="Мета подання запиту (Код із дов.24)">

<!-- Параметри, що описують критерії пошуку-->

<i reqlng="Мова критеріїв пошуку (Код із дов.23)">

<!-- Параметри ідентифікації суб'єкта-->

<ident okpo="РНОКПП (ІПН) (для фіз.осіб)/ЄДРПОУ (для юр.осіб)"

lname="**Прізвище"

fname="**Ім'я"

mname="**По батькові"

bdate="**Дата народження">

</ident>

<!-- Параметри для фотоверифікації -->

<fotoverif freqtype="Тип запиту"

inn="РНОКПП (ІПН)"

facelogic="Тип алгоритму пошуку особи"

foto="base64(Фото)"

fotoext="Розширення до фото вхідної заявки (jpeg)"

phone="Телефон для порівняння" />

</i>

</request>

</req_xml>

</req_envelope>

</ubki>

</doc>

Response XML

 body:

<?xml version="1.0" encoding="utf-8"?>

<ubkidata>

<!-- Блок системної інформації -->

<tech>

<trace>

<step name="Найменування кроку" stm="Дата штамп старту кроку" ftm="Дата штамп фінішу кроку">

<!-- Блок trace містить метрики таймінгу кроків формування компонентів -->

</step>

</trace>

<error errtype="Код помилки (Код із дов.0)" errtext="Текст помилки (Значення із дов.0)">

</error>

<reqinfo reqid="Вихідний ІД запиту, згенерований УБКІ">

</reqinfo>

<!-- Блок інформації щодо поточного стану рахунку припейд-->

<billing>

<balance value="Сума балансу" date="Дата" time="Час" />

</billing>

</tech>

<!-- Блок "фотоверифікації" -->

<comp id="16" descr="Назва компоненти">

<fotoverif freqtype="Тип запиту (1 - у своїй базі фото, 2 - в базі фото інших банків, 3 - порівняння двох осіб на фото, 4 - зарезервовано, 5 - в базі фото скомпрометованих осіб, 6 - порівняння з фото з документа, 7 - порівняння двох облич на одному фото, наприклад, особа з паспорта і обличчя людини, що тримає паспорт)"

bdfd="Ознака перевірки по БД фото скомпрометованих осіб (Код із дов.47)"

fotofd="base64 (Фото) фотографія скомпрометованої особи" fotoextfd="Розширення до фото скомпрометованої особи"

commentfd="Коментар за результатами порівняння"

verifclient="Ознака збігу фото (Код із дов.47)"

fotovc="base64 (Фото) еталонної фотографії"

fotoextvc="Розширення до фото еталонної фотографії"

commentvc="Коментар за результатами порівняння з еталонною фотографією"

confidencefd="Міра схожості осіб при порівнянні з фото скомпрометованої особи"

confidencevc="Міра схожості осіб на фотографіях клієнтів"

datefotovc="Дата еталонної фотографії"

phonematch="Результат звірки телефонів"

phonematchref="Результат звірки телефонів в текстовому вигляді">

<!-- Блок "Пошук в Реєстрі заявочних фото" -->

<grey inn="РНОКПП (ІПН), за яким спрацював реєстр запитів"

foto="base64 (Фото) фотографія особи з реєстру запитів"

fotoext="Розширення до фото особи з реєстру запитів"

datefoto="Дата фотографії з реєстру запитів"

confidence="Міра схожості осіб при порівнянні з фото з реєстру запитів"

algsearch="Тип пошуку (1 - по заданому РНОКПП (ІПН), 2 - по заданій фотографії)"

algsearchdescr="Тип пошуку в текстовому вигляді" />

<!-- Блок "Пошук в базі зниклих безвісти і осіб, та тих, які переховуються від органів влади" -->

<resultsearch state="Статус фіз.особи (missed- зниклий безвісти, wanted - особа, які переховуються від органів влади (в розшуку))"

category="Класифікація статусу фіз.особи в текстовому вигляді"

lnameua="Прізвище українською"

fnameua="Ім'я українською"

mnameua="По батькові українською"

lnameru="Прізвище російською"

fnameru="Ім'я російською"

mnameru="По батькові російською"

bdate="Дата народження"

lostdate="Дата зникнення"

lostplace="Місце зникнення"

restraint="Запобіжний захід"

contact="Контакти для інформування"

confidence="Міра схожості осіб при порівнянні з фото з бази зниклих безвісти"

foto="base64 (Фото) фотографія особи з бази зниклих безвісти"

fotoext="Розширення до фото особи з бази зниклих безвісти" />

</fotoverif>

</comp>

<!-- Попередження -->

<comp id="18" descr="Назва компоненти">

<pret nonewdeal="Ознака небажання оформлювати нові кредитні продукти, статус підключення опції FREEZE: 0 - не включена, 1 - включена"

nonewdealref="Значення ознаки небажання оформлювати нові кредитні продукти, статус підключення опції FREEZE - 0-ні (не підключена опція), 1-так (підключена опція)"

nonewdealcomment="Коментар"

freezedate="Дата підключення опції FREEZE"

inn="РНОКПП (ІПН) (для фіз.осіб)/ЄДРПОУ (для юр.осіб)">

<pretension inn="РНОКПП (ІПН) (для фіз.осіб)/ЄДРПОУ (для юр.осіб)"

crdeal="Ідентифікатор угоди (референс)"

source="Вид оскарження (Код із дов.48)"

sourceref="Вид оскарження (Значення із дов.48)"

claim="Предмет оскарження (Код із дов.69)"

claimref="Предмет оскарження (Значення із дов.69)"

vdate="Дата створення заявки" />

<commentcki comment="Коментар суб'єкта кредитної історії"

vdate="Дата створення коментаря" />

<plost pser="Серія паспорта, заявлено СКІ як загублений (крадіжка)"

pnom="Номер паспорта, заявлено СКІ як загублений (крадіжка)"

crdate="Дата створення заявки на втрату/крадіжку паспорта СКІ в УБКІ"

ldate="Зазначена в заявці дата втрати/крадіжки паспорта СКІ в УБКІ" />

<changedeal crdeal="Ідентифікатор угоди (референс)"

changecode="Код причини коригування/видалення даних (Код із дов.62)"

changeref="Текст причини коригування/видалення даних (Значення із дов.62)"

vdate="Дата коригування/видалення даних" />

</pret>

</comp>

<!-- Пошук по ПІБ+ДР при результаті більше 1 особи (Наявність компоненти визначається знаходженням більше 1 людини у разі пошуку за ПІБ+ДР)-->

<comp id="72" descr="Пошук по ПІБ+ДР при результаті більше 1 особи">

<person bdate="Дата народження"

lngref="Мова надання блоку (Значення із дов.23)"

lng="Мова надання блоку (Код із дов.23)"

mname="По батькові"

fname="Ім'я"

lname="Прізвище"

inn="РНОКПП (ІПН) СКІ" />

</comp>

</ubkidata>

freqtype

Опис

Звірка лише вхідних фото, без підключення внутрішніх баз

База еталонних фото кредиторів

База шахраїв

Реєстр заявочних фото

Зниклі безвісти

Особи в розшуку

У своїй базі фото

1

Перевірка вхідної фотографії з власною фотографією, яка раніше передавалась в бюро

-

-

-

-

-

-

В базі фото інших банків

2

Вхідне фото звіряється з історичними фотографіями всіх організацій-донорів, крім власної

-

+

+

+

+

+

Порівняння двох осіб на фото

3

На вхід передається дві фотографії. Особа на першому фото порівнюється з особою на другому фото, у запиті потрібно відправляти додаткові параметри для другої фотографії fotodocext="розширення до фото", fotodoc ="фото в бейс64"

+

-

-

-

-

-

В базі фото скомпрометованих осіб

5

Обличчя на вхідному фото звіряється тільки з базою шахраїв.

-

-

+

-

-

-

Порівняння з фото з документа

6

На вхід передається лише фото документа без особи самого клієнта. Звірка йде з історичними фотографіями всіх організацій-донорів фото.

-

+

+

+

+

+

Порівняння двох облич на одному фото

7

На вхід передається одне фото із двома особами (наприклад, клієнт тримає паспорт у руках). Відбувається звірка цих двох осіб.

+

-

-

-

-

-

Приклад

Request JSON

{
	"doc": {
		"ubki": {
			"req_envelope": {
				"req_xml": {
					"request": {
						"i": {
							"ident": {
								"okpo": "3278508288",
								"mname": "ВАСИЛІВНА",
								"fname": "ІРІНА",
								"lname": "ГАРНА",
								"bdate": "1989-10-05"
							},
							"fotoverif": {
								"freqtype": "2",
								"inn": "3278508288",
								"facelogic": "3",
								"fotoext": "jpg",
								"phone": "+380962134234",
								"foto": "/9j/4AAQSkZJRgABAQEASABIAA"
							},
							"reqlng": "1"
						},
						"version": "1.0",
						"reqtype": "17",
						"reqreason": "2"
					},
					"descr": "Об'єкт запиту"
				},
				"descr": "Конверт запиту"
			},
			"sessid": "7BD7E136E3BF470EAA2CFE2E000000ED"
		}
	}
}

Response JSON

{
	"ubkidata": {
		"tech": {
			"trace": {
				"step": {
					"name": "build report",
					"stm": "2022-01-09 21:52:29.631",
					"ftm": "2022-01-09 21:52:29.699"
				}
			},
			"reqinfo": {
				"reqid": "req2#000002008590"
			}
		},
		"comp": [
			{
				"fotoverif": {
					"reqtype": "1",
					"bdfd": "1",
					"fotofd": "/9j/4AAQSkZJRgP/XJv5Gs5bpHTTl7p/9k=",
					"fotoextfd": "jpeg",
					"commentfd": "Подозрение по фото подтверждается",
					"confidencefd": "0.73668",
					"verifclient": "2",
					"fotovc": "/9j/4AAQSlIZAUIwQaWfUhsL+TyP8Aa/8ArVT/ALZ3Lgwf+P8A/wBanYrQ/9k=",
					"fotoextvc": "jpeg",
					"datefotovc": "2018-11-21",
					"commentvc": "Подозрение по фото не подтверждается",
					"confidencevc": "0.90923",
					"phonematch": "2",
					"phonematchref": "есть совпадение телефона"
				},
				"id": "16",
				"descr": "Фотоверифікація"
			},
			{
				"pret": {
					"inn": "3278508288",
					"nonewdeal": "0",
					"nonewdealref": "Ні",
					"nonewdealcomment": "",
					"freezedate":""
				},
				"id": "18",
				"descr": "Попередження"
			}
		]
	}
}

Request XML

<?xml version="1.0" encoding="UTF-8"?>
<doc>
  <ubki sessid="7BD7E136E3BF470EAA2CFE2E000000ED">
    <req_envelope descr="Конверт запиту">
      <req_xml descr="Об'єкт запиту">
        <request version="1.0" reqtype="17" reqreason="2">
          <i reqlng="1">
            <ident okpo="3278508288" mname="ВАСИЛІВНА" fname="ІРІНА" lname="ГАРНА" bdate="1989-10-05" />
            <fotoverif freqtype="2" inn="3278508288" facelogic="3" fotoext="jpg" phone="+380962134234" foto="/9j/4AAQSkZJRgABAQEASABIAA" />
          </i>
        </request>
      </req_xml>
    </req_envelope>
  </ubki>
</doc>

Response XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ubkidata>
  <tech>
    <trace>
      <step name="build report" stm="2022-01-09 21:52:29.631" ftm="2022-01-09 21:52:29.699" />
    </trace>
    <reqinfo reqid="req2#000002008590" />
  </tech>
  <comp id="16" descr="Фотоверифікація">
    <fotoverif reqtype="1" bdfd="1" fotofd="/9j/4AAQSkZJRgP/XJv5Gs5bpHTTl7p/9k=" fotoextfd="jpeg" commentfd="Подозрение по фото подтверждается" confidencefd="0.73668" verifclient="2" fotovc="/9j/4AAQSlIZAUIwQaWfUhsL+TyP8Aa/8ArVT/ALZ3Lgwf+P8A/wBanYrQ/9k=" fotoextvc="jpeg" datefotovc="2018-11-21" commentvc="Подозрение по фото не подтверждается" confidencevc="0.90923" phonematch="2" phonematchref="есть совпадение телефона" />
  </comp>
  <comp id="18" descr="Попередження">
    <pret inn="3278508288" nonewdeal="0" nonewdealref="Ні" nonewdealcomment="" freezedate="" />
  </comp>
</ubkidata>

Test URL

https://test.ubki.ua/b2_api_xml/ubki/xml

Test data

fotoverif: freqtype = "2", inn = "один із прикладів нижче", facerlogic = "3", foto = "будь-яке, що проходить правила валідації", fotoext = "jpg / jpeg", phone = "+380662134234"

  • 2111118724, 3233312116, 3112579111 - Фото непридатне для роботи сервісу (face not found)

  • 3112579786, 3333312110, 2726020593 - Підозра по фото не підтверджується + доп. інформація по тегу Grey

  • 3278508288 - Підозра по фото підтверджується

  • 2972566397 - Підозра по фото не підтверджується

  • 3332643095, 2929952290 - Підозра по фото не підтверджується + доп. інформація по тегу resultsearch з безвісти зниклого і особи, що переховується від суду

  • 2972566111 - Вхідне фото збіглося з еталонним і з фото шахрая

<comp id="18" descr="Попередження"> тег <changedeal>

  • 3332643095

<comp id="72" descr="Пошук по ПІБ+ДР при результаті більше 1 особи">

  • bdate="1985-03-20" mname="НИКИФОРОВНА" fname="АННА" lname="ЯРЦЕВА"

  • No labels