43 - Фотоверифікація LIGHT


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


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

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

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

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

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


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

Звіт містить такі компоненти:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Http Method

POST

Request JSON

{

"doc": {

"ubki": {

"req_envelope": {

"req_xml": {

"request": {

"i": {

"ident": {

"okpo": "РНОКПП (ІПН) (для фіз.осіб)"

},

"photocheck": {

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

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

},

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

},

"version": "1.0",

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

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

},

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

},

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

},

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

}

}

}

Response JSON

{

"ubkidata": {

"tech": {

"trace": {

"step": {

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

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

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

}

},

"error": {

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

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

},

"reqinfo": {

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

},

"billing": {

"balance": {

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

"date": "Дата",

"time": "Час"

},

"billdetails": {

"freemon": "Ознака безоплатності за типом запиту "Моніторинг клієнта організації" (reqreason=1), код (0 - Ні, 1 - Так)",

"freemonref": "Ознака безоплатності за типом запиту "Моніторинг клієнта організації" (reqreason=1), значення (0 - Ні, 1 - Так)"

}

}

},

},

"comp": [

{

"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": "РНОКПП (ІПН) (для фіз.осіб)/ЄДРПОУ (для юр.осіб)"

},

"fcert": {

"inn": "ІПН",

"cert": "Ознака наявності сертифіката від УБКІ (Код із дов. 56) - 0 - ні (немає зареєстрованого сертифіката), 1 - так (є зареєстрований сертифікат) ",

"certref": "Ознака наявності сертифіката від УБКІ (Значення із дов. 56)",

"certid": "Номер сертифіката",

"certurl": "Посилання на сертифікат"

},

"maybegone": {

"inn": "РНОКПП (ІПН) (для фіз. осіб)",

"vdate": "Дата? на яку передана інформація",

"dldonor": "Донор інформації (Значення із дов.54)"

},

"id": "18",

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

},

{

"photocheck": {

"resultsearch": {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

},

"okpo": "РНОКПП(ІПН) (для фіз.осіб)",

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

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

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

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

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

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

},

"id": "65",

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

},

{

"person": {

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

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

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

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

"fname": "Ім'я",

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

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

},

"id": "72",

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

}

]

}

}

Request XML

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

<doc>

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

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

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

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

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

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

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

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

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

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

<photocheck photo="base64(Фото)"

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

</i>

</request>

</req_xml>

</req_envelope>

</ubki>

</doc>

Response XML

<?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="Час" />

<billdetails freemon="Ознака безоплатності за типом запиту "Моніторинг клієнта організації" (reqreason=1), код (0 - Ні, 1 - Так)"

freemonref="Ознака безоплатності за типом запиту "Моніторинг клієнта організації" (reqreason=1), значення (0 - Ні, 1 - Так)"/>

</billing>

</tech>

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

<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>

<fcert inn="РНОКПП (ІПН) (для фіз. осіб)"

cert="Ознака наявності сертифіката від УБКІ (Код із дов. 56) - 0 - ні (немає зареєстрованого сертифіката), 1 - так (є зареєстрований сертифікат) "

certref="Ознака наявності сертифіката від УБКІ (Значення із дов. 56)"

certid="Номер сертифіката"

certurl="Посилання на сертифікат" />

<maybegone inn="РНОКПП (ІПН) (для фіз. осіб)"

vdate="Дата, на яку передана інформація"

dldonor="Донор інформації (Значення із дов.54)"/>

</comp>

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

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

<photocheck okpo="РНОКПП(ІПН) (для фіз.осіб)"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

</photocheck>

</comp>

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

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

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

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

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

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

fname="Ім'я"

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

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

</comp>

</ubkidata>

Приклад

Приклад

Request JSON

{ "doc": { "ubki": { "req_envelope": { "req_xml": { "request": { "i": { "ident": { "okpo": "3278508288" }, "photocheck": { "photo": "/9j/4AAQSkZJRgABAQEASABI", "photoext": "jpg" }, "reqlng": "1" }, "version": "1.0", "reqtype": "43", "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": [ { "pret": { "inn": "3278508288", "nonewdeal": "0", "nonewdealref": "Ні", "nonewdealcomment": "", "freezedate":"" }, "fcert": { "inn": "3278508288", "cert": "0", "certref": "Ні", "certid": "", "certurl": "" }, "maybegone": { "inn": "3278508288", "vdate": "2022-12-01", "dldonor": "BNK" }, "id": "18", "descr": "Попередження" }, { "photocheck": { "okpo": "3278508288", "bdfd": "1", "commentfd": "Підозра по фото підтверджується", "confidencefd": "0.73668", "verifclient": "2", "commentvc": "Підозра по фото не підтверджується", "confidencevc": "0.90923" }, "id": "65", "descr": "Фотоверифікація LIGHT" } ] } }

Request XML

<?xml version="1.0" encoding="UTF-8"?> <doc> <ubki sessid="7BD7E136E3BF470EAA2CFE2E000000ED"> <req_envelope descr="Конверт запиту"> <req_xml descr="Об'єкт запиту"> <request version="1.0" reqtype="43" reqreason="2"> <i reqlng="1"> <ident okpo="3278508288" /> <photocheck photo="/9j/4AAQSkZJRgABAQEASABI" photoext="jpg" /> </i> </request> </req_xml> </req_envelope> </ubki> </doc>

Response XML

Test URL

Test data

photocheck: okpo = "один із прикладів нижче", photo = "будь-яке, що проходить правила валідації", photoext = "jpg / jpeg"

  • 3112579786

  • 3333312110

  • 2111118724

  • 3233312116

  • 3332643095

  • 2726020593

  • 2972566397

  • 3278508288

 

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

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