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 URL | https://secure.ubki.ua/b2_api_xml/ubki/xml |
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 |
XSD Schema request | |
---|---|
XSD Schema response | https://secure.ubki.ua/b2/js/xsd/response43.xsd |
Test URL | |
---|---|
Test data | photocheck: okpo = "один із прикладів нижче", photo = "будь-яке, що проходить правила валідації", photoext = "jpg / jpeg"
<comp id="72" descr="Пошук по ПІБ+ДР при результаті більше 1 особи">
|