06 - Identification by phone number and photo


Phone and photo identification service.


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": {

"fotoident": {

"foto": "base64(Photo)",

"fotoext": "Extension to the photo of the incoming request (jpeg)",

"phone": "Phone for comparison",

"facelogic": "Type to the algorithm of the poke of an individual"

},

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

},

"version": "1.0",

"reqtype": "Template code (Code from the ref.49): 'Identification by phone number and photo' - 6",

"reqreason": "Purpose of the request (Code from the 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": "Step start stamp date",

"ftm": "Step finish stamp date"

}

},

"error": {

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

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

},

"reqinfo": {

"reqid": "Outgoing request ID generated by UBKI"

},

"billing": {

"balance": {

"value": "Total assets",

"date": "Date",

"time": "Time"

}

}

},

"comp": [

{

"cki": {

"ident": {

"donor": "Source of information (code from ref. 54)",

"vdate": "Date of the information from this part",

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

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

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

"lname": "Last name",

"fname": "First name",

"mname": "Middle name",

"bdate": "Date of birth",

"csex": "Sex (code from ref.1)",

"csexref": "Sex (value from ref.1)",

"family": "Marital status (code from ref.2)",

"familyref": "Marital status (value from ref.2)",

"ceduc": "Education (code from ref.3)",

"ceducref": "Education (value from ref.3)",

"cgrag": "Citizenship (code from ref.4)",

"cgragref": "Citizenship (value from ref.4)",

"spd": "Presence of the business entity’s registration (code from ref.5)",

"spdref": "Presence of the business entity’s registration (value from ref.5)",

"sstate": "Social status (code from ref.6)",

"sstateref": "Social status (value from ref.6)",

"cchild": "Number of children"

},

"work": {

"wdonor": "Source of information (code from ref. 54)",

"vdate": "Date of the information from this part",

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

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

"cdolgn": "Official position (code from ref.8)",

"cdolgnref": "Official position (value from ref.8)",

"wokpo": "EDRPOU of the employer",

"wname": "Name of the employer in the base language",

"wstag": "Length of service, years completed",

"wdohod": "Client’s monthly income"

},

"doc": {

"ddonor": "Source of information (code from ref. 54)",

"vdate": "Date of the information from this part",

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

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

"dtype": "Document type (code from ref.7)",

"dtyperef": "Document type (value from ref.7)",

"dser": "Document series",

"dnom": "Document number",

"dterm": "Expiration date",

"dwho": "Document issuer",

"dwdt": "Document issue date",

"eddr_number": "Unique record number in the Unified State Demographic Register"

},

"addr": {

"addonor": "Source of information (code from ref. 54)",

"vdate": "Date of the information from this part",

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

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

"adtype": "Address type (code from ref.9)",

"adtyperef": "Address type (value from ref.9)",

"adcountry": "Country (two-character code from ISO 3166 reference book)",

"adindex": "Postal code",

"adstate": "Region",

"adarea": "District",

"adcity": "Locality",

"adcitytype": "Locality type (code from ref.22)",

"adcitytyperef": "Locality type (value from ref.22)",

"adstreet": "Street",

"adhome": "House",

"adcorp": "Block",

"adflat": "Flat",

"addrdirt": "Address in one row (will not be used in subsequent API versions, the field is deemed invalid starting from 13.11.2019)"

},

"inn": "TIN of the credit history subject/EDRPOU of the legal entity",

"lname": "Last name/Name of the legal entity",

"fname": "First name",

"mname": "Middle name",

"reqlng": "Search language (while searching)/Identification language (during transfer) (code from ref.23)",

"reqlngref": "Search language (while searching)/Identification language (during transfer) (value from ref.23)",

"bdate": "Date of birth"

},

"identdocmvds": {

"identdocmvd": {

"foundsource": {

"name": "Data source for verification (Code from ref.63)",

"found": "0/1 - digital indication of the presence of an invalid passport (Code from ref.27)",

"foundref": "Text indication of the presence of an invalid passport (Value from ref.27)",

"sourcedate": "The date of updating the information in the database or receiving a response from the API of the original source"

},

"found": "Found? (Code from ref.27)",

"foundref": "Found? (Value from ref.27)",

"foundtitle": "Search result description",

"pser": "Series of the required passport",

"pnom": "Number of required passport or ID-card number",

"dtype": "Document type (Code from ref.7)",

"dtyperef": "Document type (Meaning from ref.7)"

}

},

"id": "1",

"descr": "Names of components"

},

{

"fotoident": {

"match": "Phone and photo verification result (ref.56)",

"matchref": "Phone and photo verification result in text format (ref.56)",

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

"fotovc": " base64(Photo) sample photo ",

"fotoextvc": "Extension to the photo of the sample photo",

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

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

"datefotovc": "Date of a sample photo"

},

"id": "12",

"descr": "Components name"

},

{

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

},

{

"contact": {

"cval": "Contact value",

"ctype": "Contact type (code from ref.10)",

"ctyperef": "Contact type in text format (ref.10)",

"cstate": "Contact’s status (code from ref.57)",

"cstateref": "Contact’s status (text value from ref.57)",

"vdatestart": "First actualization date",

"vdate": "Last actualization date"

},

"id": "46",

"descr": "Names of components"

}

]

}

}

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 the ref.49): 'Identification by phone number and photo' - 6" reqreason="Purpose of the request (Code from the ref.24)">

<!-- Parameters, which describe the search criteria-->

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

<!-- Identification parameters of the subject-->

<fotoident foto="base64(Photo)"

fotoext="Extension to the photo of the incoming request (jpeg)"

phone="Phone for comparison"

facelogic="Type to the algorithm of the poke of an individual" />

</i>

</request>

</req_xml>

</req_envelope>

</ubki>

</doc>

Response XML

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

<ubkidata>

<!-- System information part -->

<tech>

<trace>

<step name="Step name" stm="Step start stamp date" ftm="Step finish stamp date">

<!-- The trace part contains timing metrics of components generation steps -->

</step>

</trace>

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

</error>

<reqinfo reqid="Outgoing request ID generated by UBKI">

</reqinfo>

<!-- Information about the current status of the prepaid account part-->

<billing>

<balance value="Total assets" date="Date" time="Time" />

</billing>

</tech>

<!-- Identification part -->

<comp id="1" descr="Names of components">

<cki inn="TIN of the credit history subject/EDRPOU of the legal entity"

lname="Last name/Name of the legal entity"

fname="First name"

mname="Middle name"

reqlng="Search language (while searching)/Identification language (during transfer) (code from ref.23)"

reqlngref="Search language (while searching)/Identification language (during transfer) (value from ref.23)"

bdate="Date of birth">

<ident donor="Source of information (code from ref. 54)"

vdate="Date of the information from this part"

lng="Part presentation language (code from ref.23)"

lngref="Part presentation language (value from ref.23)"

inn="TIN of the credit history subject"

lname="Last name"

fname="First name"

mname="Middle name"

bdate="Date of birth"

csex="Sex (code from ref.1)"

csexref="Sex (value from ref.1)"

family="Marital status (code from ref.2)"

familyref="Marital status (value from ref.2)"

ceduc="Education (code from ref.3)"

ceducref="Education (value from ref.3)"

cgrag="Citizenship (code from ref.4)"

cgragref="Citizenship (value from ref.4)"

spd="Presence of the business entity’s registration (code from ref.5)"

spdref="Presence of the business entity’s registration (value from ref.5)"

sstate="Social status (code from ref.6)"

sstateref="Social status (value from ref.6)"

cchild="Number of children">

<!--This part can and must contain 1..* items-->

</ident>

<!-- History of the Information about Employer part -->

<work wdonor="Source of information (code from ref. 54)"

vdate="Date of the information from this part"

lng="Part presentation language (code from ref.23)"

lngref="Part presentation language (value from ref.23)"

cdolgn="Official position (code from ref.8)"

cdolgnref="Official position (value from ref.8)"

wokpo="EDRPOU of the employer"

wname="Name of the employer in the base language"

wstag="Length of service, years completed"

wdohod="Client’s monthly income">

<!--This part can contain 0..*-->

</work>

<!-- History of the Information about Documents part -->

<doc ddonor="Source of information (code from ref. 54)"

vdate="Date of the information from this part"

lng="Part presentation language (code from ref.23)"

lngref="Part presentation language (value from ref.23)"

dtype="Document type (code from ref.7)"

dtyperef="Document type (value from ref.7)"

dser="Document series"

dnom="Document number"

dterm="Expiration date"

dwho="Document issuer"

dwdt="Document issue date"

eddr_number="Unique record number in the Unified State Demographic Register">

<!--This part must contain 1..* units and at least one document-->

</doc>

<!-- History of the Information about Addresses part -->

<addr addonor="Source of information (code from ref. 54)"

vdate="Date of the information from this part"

lng="Part presentation language (code from ref.23)"

lngref="Part presentation language (value from ref.23)"

adtype="Address type (code from ref.9)"

adtyperef="Address type (value from ref.9)"

adcountry="Country (two-character code from ISO 3166 reference book)"

adindex="Postal code"

adstate="Region"

adarea="District"

adcity="Locality"

adcitytype="Locality type (code from ref.22)"

adcitytyperef="Locality type (value from ref.22)"

adstreet="Street"

adhome="House"

adcorp="Block"

adflat="Flat"

addrdirt="Address in one row (will not be used in subsequent API versions, the field is deemed invalid starting from 13.11.2019)">

<!--This part must contain 1..* units and at least one address-->

</addr>

</cki>

<!-- Block for converting documents for validity -->

<identdocmvds>

<identdocmvd found="Found? (Code from ref.27)"

foundref="Found? (Value from ref.27)"

foundtitle="Search result description"

pser="Series of the required passport"

pnom="Number of required passport or ID-card number"

dtype="Document type (Code from ref.7)"

dtyperef="Document type (Meaning from ref.7)">

<foundsource name="Data source for verification (Code from ref.63)"

found="0/1 - digital indication of the presence of an invalid passport (Code from ref.27)"

foundref="Text indication of the presence of an invalid passport (Value from ref.27)"

sourcedate="The date of updating the information in the database or receiving a response from the API of the original source" />

<!--This part must contain 1..* units and at least one document -->

</identdocmvd>

</identdocmvds>

</comp>

<!-- Phone identification block and photo -->

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

<fotoident match="Phone and photo verification result (ref.56)"

matchref="Phone and photo verification result in text format (ref.56)"

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

fotovc=" base64(Photo) sample photo "

fotoextvc="Extension to the photo of the sample photo"

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

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

datefotovc="Date of a sample photo" />

</comp>

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

<!-- Confirmation of the credit history subject’s contacts part -->

<comp id="46" descr="Names of components">

<contact cval="Contact value"

ctype="Contact type (code from ref.10)"

ctyperef="Contact type in text format (ref.10)"

cstate="Contact’s status (code from ref.57)"

cstateref="Contact’s status (text value from ref.57)"

vdatestart="First actualization date"

vdate="Last actualization date" />

<!--This part can contain 0..* items -->

</comp>

</ubkidata>

Example

Example

Request JSON

{ "doc": { "ubki": { "req_envelope": { "req_xml": { "request": { "i": { "fotoident": { "foto": "base64(Foto)", "fotoext": "jpeg", "phone": "+380662134234", "facelogic": "6" }, "reqlng": "4" }, "version": "1.0", "reqtype": "06", "reqreason": "6" } } }, "sessid": "771F947292D94D3BBB04661611C5B26A" } } }

Response JSON

{ "ubkidata": { "tech": { "trace": { "step": { "name": "build report", "stm": "2022-08-24 14:30:59.227", "ftm": "2022-08-24 14:30:59.593" } }, "reqinfo": { "reqid": "req2#000002459044" } }, "comp": [ { "cki": { "ident": [ { "cchild": "", "sstateref": "", "sstate": "", "spdref": "natural person", "spd": "1", "cgragref": "Ukraine", "cgrag": "804", "ceducref": "", "ceduc": "", "familyref": "", "family": "", "csexref": "woman", "csex": "2", "bdate": "1985-10-05", "mname": "ВАСИЛІВНА", "fname": "ІРІНА", "lname": "ГАРНА", "inn": "3278508288", "lngref": "Украинский", "lng": "1", "vdate": "2015-02-25", "donor": "BNK" }, { "cchild": "", "sstateref": "", "sstate": "", "spdref": "natural person", "spd": "1", "cgragref": "", "cgrag": "802", "ceducref": "", "ceduc": "", "familyref": "", "family": "", "csexref": "woman", "csex": "2", "bdate": "1985-10-05", "mname": "ВАСИЛІВНА", "fname": "ІРИНА", "lname": "ГАРНА", "inn": "3278508288", "lngref": "Ukrainian", "lng": "1", "vdate": "2006-04-04", "donor": "BNK" } ], "work": { "wdohod": "", "wstag": "", "wname": "", "wokpo": "", "cdolgnref": "", "cdolgn": "", "lngref": "", "lng": "", "vdate": "" }, "doc": { "dwdt": "2002-08-01", "dwho": "ІВАНГОРОДСЬКИМ", "dterm": "", "dnom": "578072", "dser": "АМ", "dtyperef": "Паспорт", "dtype": "1", "lngref": "Ukrainian", "lng": "1", "vdate": "2019-09-10", "eddr_number": "19891005-00022", "ddonor": "BNK" }, "addr": { "adflat": "", "adcorp": "", "adhome": "7", "adstreet": "ТИХА", "adcitytyperef": "", "adcitytype": "", "adcity": "JВDКВJ", "adarea": "ІВАНГОРОДСКИЙ", "adstate": "ДНЕПРОПЕТРОВСКАЯ", "adindex": "23201", "adcountry": "UA", "adtyperef": "Address of registration", "adtype": "2", "lngref": "Ukrainian", "lng": "1", "vdate": "2018-01-25", "addonor": "BNK" }, "bdate": "1989-10-05", "reqlngref": "Ukrainian", "reqlng": "1", "mname": "ВАСИЛІВНА", "fname": "ІРІНА", "lname": "ГАРНА", "inn": "3278508288" }, "identdocmvds": { "identdocmvd": { "foundsource": [ { "name": "MVS", "found": "1", "foundref": "Found", "sourcedate": "2022-08-24" }, { "name": "DMS", "found": "0", "foundref": "Not found", "sourcedate": "2022-08-24" }, { "name": "UBKI", "found": "0", "foundref": "Not found", "sourcedate": "2022-08-24" } ], "found": "1", "foundref": "Found", "foundtitle": "Passport АМ-578072 is found in the list of invalid passports.", "pser": "АМ", "pnom": "578072", "dtype": "1", "dtyperef": "Passport" } }, "id": "1", "descr": "Identification of the Credit History Subject (CHS)" }, { "fotoident": { "match": "1", "matchref": "Yes", "verifclient": "2", "fotovc": " /9j/4A//2Q==", "fotoextvc": "jpg", "commentvc": "face found", "confidencevc": "0.95986" }, "id": "12", "descr": "Identification by photo and phone" }, { "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" }, { "contact": [ { "cval": "+380662134234", "ctype": "3", "ctyperef": "mobile phone", "cstate": "1", "cstateref": "Actualization", "vdatestart": "2020-09-03", "vdate": "2020-09-08" }, { "cval": "+380111111111", "ctype": "3", "ctyperef": "mobile phone", "cstate": "2", "cstateref": "Deactualization", "vdatestart": "2020-06-12", "vdate": "2020-08-30" } ], "id": "46", "descr": "Сontacts confirmation of the subject of the credit history" } ] } }

Request XML

<?xml version="1.0" encoding="UTF-8"?> <doc> <ubki sessid="771F947292D94D3BBB04661611C5B26A"> <req_envelope> <req_xml> <request version="1.0" reqtype="06" reqreason="6"> <i reqlng="4"> <fotoident foto="base64(Foto)" fotoext="jpeg" phone="+380662134234" facelogic="6" /> </i> </request> </req_xml> </req_envelope> </ubki> </doc>

Response XML

Test URL

Test data

fotoident: foto="any that passes validation rules", fotoext="jpeg", phone="any from examples below", facelogic="6"

  • +380962134234 request successful, identification passed

  • +380971321122 - request successful, identification passed

  • +380935171868 - request successful, identification passed

  • +380981224895 - request successful, identification passed

  • +380677996111 - request successful, identification passed

  • +380685691111 - request successful, identification passed

  • +380992863111 - request successful, identification passed

  • +380732144444 - the photo does not meet the stated parameters

  • +380662134234 - degree of similarity of persons in the photo less than 50%

  • +380506630641 - there is no reference photo for comparison in the UBKI database

  • +380935171868 - more than six clients were found by phone number

  • +380981220000 - request successful, identification passed