17 - Фотоверифікація
Сервіс перевірки автентичності особи на фото.
Сервіс дозволяє аналізувати фотографії клієнтів в кредитних заявках:
верифікація клієнта (підтвердження особи),
запобігання шахрайству,
виявлення фактів крадіжки особистості - злочин, при якому персональні дані людини використовуються для незаконного отримання матеріальної вигоди (окремі випадки: фальсифікація і підробка документів, в найпростішому випадку - заміна фото в паспорті).
В основі сервісу фотоверифікаціі УБКІ - Microsoft Face API
Схема роботи сервісу фотоверифікаціі
Технологічна схема сервісу
Звіт містить такі компоненти:
Вимоги до фотографії1. Максимальний розмір запиту із закодованою фотографією - 2 МБ. 2. Тип файлу - jpeg/jpg 3. XML запит - фото base64 4. Більш висока якість зображення особи означає кращу точність розпізнавання: фронтальний, прозорий і розмір особи - 200x200 пікселів (100 пікселів між очима) або більше. 5. Площа особи на фотографії повинна становити максимальну можливу частку від усього зображення; 6. Фотографія повинна бути чітка, не розмита; 7. Колір і яскравість фону повинні забезпечувати надійне визначення контуру голови. 8. Розташування та освітлення: - Розташування голови - без поворотів, прямо, погляд спрямований строго на камеру. Нахили або повороти голови в будь-якому напрямку або зміни фокуса особи приведуть до спотворення результатів порівняння; - На фоні не повинно бути тіней від голови, не повинно бути тіней на обличчі або будь-яких предметів; - На зображеннях особи не рекомендується закритих очей; волосся, що закривають очі і обличчя; - На зображеннях осіб не рекомендується світлових відблисків і тіней; - Не рекомендуються фото з фоном: вулиця, машина, паркани, дерева та ін. 9. Окуляри і головні убори: - На зображеннях не рекомендуються елементи одягу, що закривають (частково або повністю) особу, тобто капелюхів, хусток і т.д .; товстих оправ окулярів, які деформують риси обличчя; - На зображеннях не рекомендується відображення спалахів або підсвічуваних відображень в склах лінз або окулярів. 10. Вираз і кадр: - За зображенням обличчя не рекомендується наявність осіб інших людей; - Погляд на камеру повинен бути з нейтральним виразом обличчя і закритим ротом. |
Http Method | POST |
---|---|
Request URL | https://secure.ubki.ua/b2_api_xml/ubki/xml |
Request JSON |
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": [ { "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": "РНОКПП (ІПН) (для фіз.осіб)/ЄДРПОУ (для юр.осіб)" }, "fcert": { "inn": "ІПН", "cert": "Ознака наявності сертифіката від УБКІ (Код із дов. 56) - 0 - ні (немає зареєстрованого сертифіката), 1 - так (є зареєстрований сертифікат) ", "certref": "Ознака наявності сертифіката від УБКІ (Значення із дов. 56)", "certid": "Номер сертифіката", "certurl": "Посилання на сертифікат" }, "maybegone": { "inn": "РНОКПП (ІПН) (для фіз. осіб)", "vdate": "Дата? на яку передана інформація", "dldonor": "Донор інформації (Значення із дов.54)" }, "id": "18", "descr": "Назва компоненти" }, { "person": { "bdate": "Дата народження", "lngref": "Мова надання блоку (Значення із дов.23)", "lng": "Мова надання блоку (Код із дов.23)", "mname": "По батькові", "fname": "Ім'я", "lname": "Прізвище", "inn ": "РНОКПП (ІПН) СКІ", }, "id": "72", "descr": "Пошук по ПІБ+ДР при результаті більше 1 особи (Наявність компоненти визначається знаходженням більше 1 людини у разі пошуку за ПІБ+ДР)" } ] } } |
Request XML |
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="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> <fcert inn="РНОКПП (ІПН) (для фіз. осіб)" cert="Ознака наявності сертифіката від УБКІ (Код із дов. 56) - 0 - ні (немає зареєстрованого сертифіката), 1 - так (є зареєстрований сертифікат) " certref="Ознака наявності сертифіката від УБКІ (Значення із дов. 56)" certid="Номер сертифіката" certurl="Посилання на сертифікат" /> <maybegone inn="РНОКПП (ІПН) (для фіз. осіб)" vdate="Дата, на яку передана інформація" dldonor="Донор інформації (Значення із дов.54)"/> </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":""
},
"fcert": {
"inn": "3278508288",
"cert": "0",
"certref": "Ні",
"certid": "",
"certurl": ""
},
"maybegone": {
"inn": "3278508288",
"vdate": "2022-12-01",
"dldonor": "BNK"
},
"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 |
XSD Schema request | |
---|---|
XSD Schema response | https://secure.ubki.ua/b2/js/xsd/response17.xsd |
Test URL | |
---|---|
Test data | fotoverif: freqtype = "2", inn = "один із прикладів нижче", facerlogic = "3", foto = "будь-яке, що проходить правила валідації", fotoext = "jpg / jpeg", phone = "+380662134234"
<comp id="18" descr="Попередження"> тег <changedeal>
<comp id="72" descr="Пошук по ПІБ+ДР при результаті більше 1 особи">
|