43 - Photo verification LIGHT


Verification of identity based on a photo.


The service allows you to analyze the customer’s photos in the credit requests:

  • Customer verification (identity authentication),

  • Fraud prevention,

  • Identification of the facts of identity theft - a crime, in which a person's personal data are used to obtain illegally the material benefits (special cases: forgery and forgery of documents, in the simplest case – photo reglueing in the passport).

At the heart of the photo verification of the Ukrainian Bureau of Credit History is Microsoft Face API.


Requirements to the photo

1. File size (recommended) - 2Mb

2. File extension - jpeg/jpg

3. XML request - photo base64

4. The higher quality of a face image means the better recognition accuracy: frontal, transparent and face size - 200x200 pixels (100 pixels between the eyes) or more.

5. The face area in the photo has to compose a maximum possible share of the entire image;

6. The photo must be clear, not fuzzy;

7. The color and brightness of the background have to provide a reliable definition of a head contour.

8. Location and lighting:

- The head location - without turning, straight, and the sight has to be directed strictly at the camera. The head bends or turnings in any direction or face focus changing will lead to deformation of the comparison results;

- There has to be no shadows from the head against the background, there has to be no shadows on the face or any objects;

- It isn’t recommended the close eyes on images of face; hair that covers the eyes and face;

- It isn’t recommended any light reflections and shadows at the images of faces;

- It isn’t recommended a photo with background: street, car, fences, trees, etc.

9. Glasses and headwears:

- It isn’t recommended on the images the availability of clothing elements, that cover (partially or completely) a face, i.e. hats, shawls, etc.; the thick frames of glasses, which deform the facial features;

- It is not recommended the reflections of flashes or highlightings reflected in the glasses of lenses or glasses.

10. Expression and frame:

- It is not recommended the availability of other person behind the face image;

- The look at the camera should be with a neutral facial expression and with closed mouth.

Http Method

POST

Request JSON

{

"doc": {

"ubki": {

"req_envelope": {

"req_xml": {

"request": {

"i": {

"ident": {

"okpo": "INN-RNUKPN (for the natural persons)"

},

"photocheck": {

"photo": "base64(Photo)",

"photoext": "Extension to the photo of the incoming request (jpeg/jpg)"

},

"reqlng": "Search criteria language (Code from ref.23)"

},

"version": "1.0",

"reqtype": "Template code (Code from ref.49): Report 'Photo verification LIGHT' - 43",

"reqreason": "Purpose of the request (Code from ref.24)"

},

"descr": "Request object"

},

"descr": "Request envelope"

},

"sessid": "Session key (we receive it from the API authorization)"

}

}

}

Response JSON

{

"ubkidata": {

"tech": {

"trace": {

"step": {

"name": "Step name",

"stm": "Date - stamp of the starting step",

"ftm": "Date - stamp of the ending step"

}

},

"error": {

"errtype": "Error code (code from ref.0)",

"errtext": "Error text (value from ref.0)"

},

"reqinfo": {

"reqid": "Outstanding ID request, generated by the Ukrainian Bureau of Credit History"

},

"billing": {

"balance": {

"value": "Balance amount",

"date": "Date",

"time": "Time"

}

}

},

"comp": [

{

"pret": {

"pretension": {

"inn": "INN (for natural persons)/OKPO (for legal entities)",

"crdeal": "Transaction identifier (reference)",

"source": "Disputing type (Code from ref.48)",

"sourceref": "Disputing type (Value from ref.48)",

"claim" : "Subject of dispute (Code from ref. 69)",

                         "claimref": "Subject of dispute (Value from ref. 69)",

"vdate": "Date of the request creation"

},

"commentcki": {

"comment": "Commentary of the subject of credit history",

"vdate": "Date of a comment creation"

},

"plost": {

"pser": "Passport series claimed by the client as lost (theft)",

"pnom": "Passport number declared by the client as lost (theft)",

"crdate": "ДDate of creation of an application for the loss/theft of a client's passport in UBCH",

"ldate": "The date of loss / theft of the client's passport indicated in the application in UBCH"

},

"changedeal": {

"crdeal": "Transaction identifier (reference)",

"changecode": "Code for the reason of correction/deletion of data (Code from ref.62)",

"changeref": "Text of the reason for correcting/deleting data (Value from ref.62)",

"vdate": "Date of data correction/deletion"

},

"freezedate": "FREEZE option connection date",

"nonewdealcomment": "Comment",

"nonewdeal": "Sign of reluctance to draw up new loan products, connection status of the FREEZE option: 0 - not enabled, 1 - enabled",

"nonewdealref": "The value of the sign of unwillingness to draw up new credit products, the connection status of the FREEZE option is 0-no (the option is not connected), 1-yes (the option is connected)",

"inn": "INN (for natural persons)/OKPO (for legal entities)"

},

"fcert": {

"inn": "TIN",

"cert": "Availability of a certificate from the UBCH (code from ref. 56) - 0 - no (no registered certificate), 1 - yes (registered certificate) ",

"certref": "Availability of a certificate from the UBCH (value from ref. 56)",

"certid": "Certificate number",

"certurl": "Link to the certificate"

},

"maybegone": {

"inn": "TIN",

"vdate": "Application creation date",

"dldonor": "Information provider (code from ref. 54)"

},

"id": "18",

"descr": "Components name"

},

{

"photocheck": {

"okpo": "INN-RNUKPN (for the natural persons)",

"bdfd": "A checking sign by compromised persons’ photo database (Code from ref.47)",

"commentfd": "Comment on comparison results",

"confidencefd": "A measure of similarity of persons when compared with a photo of a compromised person",

"verifclient": "The sign of the photo match (Code from ref.47)",

"commentvc": "Comment on the results of comparison with the sample photo",

"confidencevc": "A measure of the similarity of individuals in the customers’ photos"

},

"resultsearch": {

"state": "Status of the natural person",

"category": "Classification of the status of the physical person in text form",

"lnameua": "Last Name in Ukrainian",

"fnameua": "Name in Ukrainian",

"mnameua": "Patronymic in Ukrainian",

"lnameru": "Last Name in Russian",

"fnameru": "Name in Russian",

"mnameru": "Patronymic in Russian",

"bdate": "Date of birth",

"lostdate": "date of disappearance",

"lostplace": "Place of Extinction",

"restraint": "preventive measure",

"contact": "Contacts to inform",

"confidence": "A measure of the similarity of individuals when compared with a photo from the base of the missing person",

"foto": "base64 (Photo) photographing faces from the base of missing persons",

"fotoext": "Extension to a photo of a person from the base of missing persons"

},

"id": "65",

"descr": "Components name"

},

{

"person": {

"bdate": "Date of birth",

"lngref": "Search/transfer language (ref. 23)",

"lng": "Part presentation language, value (ref. 23)",

"mname": "Middle name",

"fname": "First name",

"lname": "Last name",

"inn ": "TIN of the credit history subject",

},

"id": "72",

"descr": "Search by full name + inn if more than 1 person is found (The presence of the component is determined by searching for more than 1 person in the case of searching by full name + inn)"

}

]

}

}

Request XML

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

<doc>

<ubki sessid="Session key (we receive it from the API authorization)">

<req_envelope descr="Request envelope">

<req_xml descr="Request object">

<!-- Request Parameters -->

<request version="1.0" reqtype="Template code (Code from ref.49): Report 'Photo verification LIGHT' - 43" reqreason="Purpose of the request (Code from ref.24)">

<!-- Parameters, describing the search criteria-->

<i reqlng="Search criteria language (Code from ref.23)">

<!-- Parameters of the subject identification -->

<ident okpo="INN-RNUKPN (for the natural persons)" />

<!-- Parameters for photo verification-->

<photocheck photo="base64(Photo)"

photoext="Extension to the photo of the incoming request (jpeg/jpg)" />

</i>

</request>

</req_xml>

</req_envelope>

</ubki>

</doc>

 

Response XML

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

<ubkidata>

<!-- System information block -->

<tech>

<trace>

<step name="Step name" stm="Date - stamp of the starting step" ftm="Date - stamp of the ending step">

<!-- The trace block contains metrics for timing of the steps for components formation -->

</step>

</trace>

<error errtype="Error code (Code from ref.0)" errtext="Error text (Value from ref.0)">

</error>

<reqinfo reqid="Outstanding ID request, generated by the Ukrainian Bureau of Credit History">

</reqinfo>

<!-- The block of information on the current state of the prepaid account-->

<billing>

<balance value="Balance amount" date="Date" time="Time" />

</billing>

</tech>

<!-- Alert -->

<comp id="18" descr="Components name">

<pret nonewdeal="Sign of reluctance to draw up new loan products, connection status of the FREEZE option: 0 - not enabled, 1 - enabled"

nonewdealref="The value of the sign of unwillingness to draw up new credit products, the connection status of the FREEZE option is 0-no (the option is not connected), 1-yes (the option is connected)"

freezedate="FREEZE option connection date"

nonewdealcomment="Comment"

inn="INN (for natural persons)/OKPO (for legal entities)">

<pretension inn="INN (for natural persons)/OKPO (for legal entities)"

crdeal="Transaction identifier (reference)"

source="Disputing type (Code from ref.48)"

sourceref="Disputing type (Value from ref.48)"

claim="Subject of dispute (Code from ref. 69)"

                         claimref="Subject of dispute (Value from ref. 69)"

vdate="Date of the request creation" />

<commentcki comment="Commentary of the subject of credit history"

vdate="Date of a comment creation" />

<plost pser="Passport series claimed by the client as lost (theft)"

pnom="Passport number declared by the client as lost (theft)"

crdate="ДDate of creation of an application for the loss/theft of a client's passport in UBCH"

ldate="The date of loss / theft of the client's passport indicated in the application in UBCH" />

<changedeal crdeal="Transaction identifier (reference)"

changecode="Code for the reason of correction/deletion of data (Code from ref.62)"

changeref="Text of the reason for correcting/deleting data (Value from ref.62)"

vdate="Date of data correction/deletion" />

</pret>

<fcert inn="TIN"

cert="Availability of a certificate from the UBCH (code from ref. 56) - 0 - no (no registered certificate), 1 - yes (registered certificate) "

certref="Availability of a certificate from the UBCH (value from ref. 56)"

certid="Certificate number"

certurl="Link to the certificate" />

<maybegone inn="TIN"

vdate="Application creation date"

dldonor="Information provider (code from ref. 54)"/>

</comp>

<!-- Block “Photo verification LIGHT” -->

<comp id="65" descr="Components name">

<photocheck okpo="INN-RNUKPN (for the natural persons)"

bdfd="A checking sign by compromised persons’ photo database (Code from ref.47)"

commentfd="Comment on comparison results"

confidencefd="A measure of similarity of persons when compared with a photo of a compromised person"

verifclient="The sign of the photo match (Code from ref.47)"

commentvc="Comment on the results of comparison with the sample photo"

confidencevc="A measure of the similarity of individuals in the customers’ photos" />

<!-- Block "Search in the database of missing people" -->

<resultsearch state="Status of the natural person"

category="Classification of the status of the physical person in text form"

lnameua="Last Name in Ukrainian"

fnameua="Name in Ukrainian"

mnameua="Patronymic in Ukrainian"

lnameru="Last Name in Russian"

fnameru="Name in Russian"

mnameru="Patronymic in Russian"

bdate="Date of birth"

lostdate="date of disappearance"

lostplace="Place of Extinction"

restraint="preventive measure"

contact="Contacts to inform"

confidence="A measure of the similarity of individuals when compared with a photo from the base of the missing person"

foto="base64 (Photo) photographing faces from the base of missing persons"

fotoext="Extension to a photo of a person from the base of missing persons" />

</comp>

<!-- Search by full name + inn if more than 1 person is found (The presence of the component is determined by searching for more than 1 person in the case of searching by full name + inn)-->

<comp id="72" descr="Search by full name + inn if more than 1 person is found">

<person bdate="Date of birth"

lngref="Search/transfer language (ref. 23)"

lng="Part presentation language, value (ref. 23)"

mname="Middle name"

fname="First name"

lname="Last name"

inn="TIN of the credit history subject" />

</comp>

</ubkidata>

Example

Example

Request JSON

{ "doc": { "ubki": { "req_envelope": { "req_xml": { "request": { "i": { "ident": { "okpo": "3278508288" }, "photocheck": { "photo": "/9j/4AAQSkZJRgABAQEASABI", "photoext": "jpg" }, "reqlng": "4" }, "version": "1.0", "reqtype": "43", "reqreason": "2" } } }, "sessid": "EDF4309796114D6D9B8365370DA2DEE9" } } }

Response JSON

{ "ubkidata": { "tech": { "trace": { "step": { "name": "build report", "stm": "2022-08-29 14:11:49.048", "ftm": "2022-08-29 14:11:49.152" } }, "reqinfo": { "reqid": "req2#000002461683" } }, "comp": [ { "pret": { "inn": "3278508288", "nonewdeal": "0", "nonewdealref": "No", "nonewdealcomment": "", "freezedate":"" }, "fcert": { "inn": "3278508288", "cert": "0", "certref": "No", "certid": "", "certurl": "" }, "maybegone": { "inn": "3278508288", "vdate": "2022-12-01", "dldonor": "BNK" }, "id": "18", "descr": "Alert" }, { "photocheck": { "okpo": "3278508288", "bdfd": "1", "commentfd": "The suspicion is confirmed by the photo", "confidencefd": "0.73668", "verifclient": "2", "commentvc": "The suspicion is confirmed by the photo", "confidencevc": "0.90923" }, "id": "65", "descr": "Photo Verification LIGHT" } ] } }

Request XML

<?xml version="1.0" encoding="UTF-8"?> <doc> <ubki sessid="EDF4309796114D6D9B8365370DA2DEE9"> <req_envelope> <req_xml> <request version="1.0" reqtype="43" reqreason="2"> <i reqlng="4"> <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 = "one of the examples below", photo = "any passing validation rules", photoext = "jpg/jpeg"

  • 3112579786

  • 3333312110

  • 2111118724

  • 3233312116

  • 3332643095

  • 2726020593

  • 2972566397

  • 3278508288

 

<comp id="72" descr="Search by full name + inn if more than 1 person is found">

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