Identity Verification Send API (3.0)

Download OpenAPI specification:Download

INTRODUCTION

Integration API for identity verification services through REST API requests.

COMPATIBILITY AND VERSIONS


Version 1.0 – 1.7: Last update 2017. Upgrading to version 3.0 or higher is recommended. Versions currently not supported. Contact support for migration help.
Version 2.0 – 2.3: last update: 2019. Parameters are added to the requests to use more signature, time stamping and contracting possibilities. The online identity verification/certification service through video is added.
Version 2.5: last update: 2020. The possibility of sending identity verification in contracts and contract-identifying parameters is added.
Version 2.55: Last update: 2021. A utility is added to certify and time stamp, or only stamp, a PDF document in a simple way. A utility that can be integrated into applications.
Version 3.0: Last update 2021. The REST API format is changed to adapt the systems to the ENS security certification (national security framework). The possibility of using workflows is added and personalization possibilities are expanded. The possibility of adding signature boxes in templates and files and other functionalities is included. Migration to this version is recommended. Migration is very simple from 2.0 or higher.

AUTHENTICATION

In your user account you will find the API User and the API Token, both are necessary to make the REST API requests to the API functions. The Requests, for security reasons, must be made via POST and with Secure HTTPS protocol.



To use Basic Authentication you must include a header in the requests of the type: Authorization: Basic Base64StringAPI where Base64StringAPI is the Base64 encoding of the string APIUser:APIToken, you can find your API User and API Token in your user account in Your Data -> Configure Account.



To generate the Base64-encoded string, simply generate the string APIUser:APIToken and encode it in base64 using any base64encode function.

IMPORTANT NOTES

Empty connections: It is important to keep in mind that a repeatedly erroneous connection will be treated by the system as spam and may end up temporarily blocking the connection.

It is advisable to avoid making repeated connections with erroneous data or fast 'empty' connections (without sending anything) with the same data to obtain the number of credits or the same report.

To obtain reports optimally in real time it is recommended to configure the API in the panel to receive them in a script on your website.


Response of the requests: Most of the functions have a parameter called 'Resp'. This parameter defines the format of the response that will be returned. It can be TXT, JSON, XML or undefined.

It is always recommended to define this parameter since all functions, for compatibility with previous versions of the API, respond by default (if this parameter is not defined) as they did in old versions. In these results from previous API versions, some of the variables that are included in this version of the API are omitted, and which we consider important to facilitate integration and account information.

In the included examples it is always assumed that you have defined the parameter. If you are working directly with API version >= 5, we will assume that you have defined the parameter in all requests.


Recommended operation: The recommended operation, being the simplest and at the same time the most professional, is the following:
- PROCESS 1: Sending an Identity verification Request to the user: Described in the /VerificarIdentidad function of this document.
- PROCESS 2: Automatic reception of the result on your website through a webhook (process described in the section 'Automatic event reception'.

basicAuth

HTTP Basic authentication. Use your API User as the username and your API Token as the password (you will find them in your panel, under Your Data → Configure Account). The resulting header is Authorization: Basic base64(APIUser:APIToken). Most HTTP libraries build it automatically (curl -u, requests auth=, Ruby's basic_auth, etc.) without needing to encode the base64 by hand.

Security Scheme Type: HTTP
HTTP Authorization Scheme: basic

Send Identity Verification Request

/VerificarIdentidad

Function for sending Identity Verification requests through video and Artificial Intelligence. Definition of necessary parameters.

ATTENTION: Check the real-time event reception section if you want to receive the verification status and the recipient's interactions in real time in a script on your website.

Authorizations:
basicAuth
query Parameters
Mensaje
string
Example: Mensaje=MiEmpresa

It is the message that will be sent to the recipient on their mobile with the link to begin the process. It must include the keyword [LINK] which will be replaced by the access link. For example: 'We need to verify your identity. Click the following link to begin the process: [LINK].’

Dni
string
Example: Dni=00000000T

If you wish, you can indicate the ID document number to verify, the system will verify the person, their ID document and will additionally indicate in the result whether the ID document is the expected one.

Fecha
string
Example: Fecha=2022-05-01 15:10

Date on which the sending of the identity verification request is scheduled. By default "" which means send immediately. Format Year-Month-day hour:minute. The time reference is CET/CEST (Spain time zone).

Remitente
string
Example: Remitente=MiEmpresa

Sender of the SMS sent to begin the process. It is what each recipient will receive on their mobile as 'message from...'. Generally the name of the issuing company is used. Maximum 11 characters.

Telefono
required
string
Example: Telefono=34600000001

Recipient's mobile phone.

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Type of response to return as the result of the call.
ANT - (Obsolete). Kept for compatibility with previous versions
JSON - The response will be returned in JSON
XML - The response will be returned in XML
TXT - The response will be returned in Text format

Request Body schema:

Parameters are sent in the body of the POST request, either as a JSON object (Content-Type application/json, RECOMMENDED) or as an application/x-www-form-urlencoded form. In the form format, array or object parameters are sent as a JSON-encoded string. Parameter names are case-insensitive. The detailed description of each parameter is in the parameters section of this operation.

Mensaje
string
Dni
string
Fecha
string
Remitente
string
Telefono
required
string
Resp
string

Responses

Response Schema:
Array
Res
required
integer <int32>

Response of the requested function


1 Correct.
-1 Authentication error.
-2 There are not enough credits in the account.
-3 Error in the call data. Required parameters are missing. In this case, you will obtain an additional parameter called Error with the description of the error.
-4 Your account does not have the possibility of using this function activated, you need to validate the account before using it. Contact support.
-5 to -7 General error in the request (contact support indicating the parameters used).

ID
string

Identifier of the request sent. (See Event reception in this document)

Cred
integer

Credits remaining in the user account after sending.

Request samples

Content type
{
  • "Mensaje": "MiEmpresa",
  • "Dni": "00000000T",
  • "Fecha": "2022-05-01 15:10",
  • "Remitente": "MiEmpresa",
  • "Telefono": "34600000001",
  • "Resp": "JSON"
}

Response samples

Content type
[
  • {
    }
]

Reception of delivery reports and status changes of sent requests

https://{SuDominio}/path/de/su/script/de/recepción/de/reports

REAL-TIME RECEPTION OF STATUSES IN A SCRIPT ON YOUR SERVER.

By activating the option to receive reports in real time in a script on your server from your user panel, you will receive a POST request with the indicated format each time each sent request changes status.

You can configure receiving the requests with basic authentication and in JSON or FORM-DATA format

Authorizations:
basicAuth
Request Body schema:

Parámetros recibidos en su script en petición POST con la configuración especificada en su panel de usuario/configuración API.

Servicio
required
string

Type of report you are receiving (the goal is to distinguish between the reports of the different services). The services to which this specification refers may receive

VERIFICACION_IDENTIDAD If the service refers to a status change of an Identity verification request sent.

ID
required
string

Identifier of the request received as a response to the Send function.

FechaEnvio
string

Date on which the request was sent.

Estado
required
integer

Status of the request. The possible statuses are:

STATUS DESCRIPTION MEANING
`3000` The user has accessed The user has accessed to begin the process.
`3001` Verifying Person/Liveness The person is being verified through video and a liveness test is being performed.
`3002` Request for front of ID document After verifying the person, the front of the ID document or passport is requested.
`3003` Request for back of ID document The user has been asked to show the back of their ID document.
`5000` In process The service is accepted and in the process of verification.
`5001` Process under verification The process has finished and you have the data available (you will receive them in variables and the information is available in the panel..
`5100` Validated The verification has been validated and certified. You can download the certificate through the download function.
`5500` Rejected The verification has been rejected by an operator based on the results obtained. You will receive the data and the reason as parameters.
UltimaActualizacion
string

Last update/interaction with the user.

Acceso
Array of arrays

Array with date and IP address of the recipient's access. The following data will be received in JSON:
Fecha : Access date
IP : IP from which the service is accessed
Puerto : Port from which the recipient connects

Example: {"Fecha":"2021-09-04 19:37:21","IP":"85.10.20.221","Puerto":"11892"}

Telefono
integer

Recipient's Mobile Number.

DNIAnverso
string

If it is already available at the time of this request, the ID document number detected on the front of the document during the process is sent.

DNIReverso
string

If it is already available at the time of this request, the ID document number detected on the back of the document during the process is sent. Logically, it should match the number on the back to be correct

DNISolicitado
string

If, during the request, a specific ID document number was requested to be verified for the recipient, it will be indicated here.

Posicion
Array of arrays

Array with the recipient's location if they have allowed it during the process. The following data will be received in JSON
Direccion : Street and number where the recipient is located
Coordenadas : Latitude, longitude and altitude of the location, including the precision in meters in the form of JSON:
         Longitud : Longitude
         Latitud : Latitude
         Altura : Altitude
         Precision : Precision of the GPS location

Example: {"Direccion":"C. de las calles, 8B, 28333 Madrid, Spain","Coordenadas":{"Longitud":"-1.6592592","Latitud":"4.4577993","Altura":75.70229058041491,"Precision":15.265999794006348}}

Dispositivo
Array of arrays

Array with data of the device used (recipient's mobile). The following data will be received in JSON:
browser : Browser used and version
SysOp : Operating system of the device used and version
displayResolution : Screen resolution of the device used.

Example: {"browser":"Chrome 92.0.4515.131","SysOp":"Android 11","displayResolution":"360 x 800"}

Result
Array of arrays

Array with the data of the result of the Identity Verification. The following data will be received in JSON:
Resultado : It can be positive (>80) in which case everything has gone correctly, or <0 in which case one of the error reasons is given. All the data to verify the failure reasons is also included.
       >80 Similarity as a percentage (80-100%) between person and ID document, if the percentage is lower it must be validated manually (operator)
       -1 The similarity is less than 80% and must be validated by an operator (based on the data, key photos, ID document, and results that appear in the user panel or through the data received in this request).
       -2 The recipient is a minor.
       -3 The Front and Back of the document do not seem to match.
       -4 The liveness test seems to have been performed by different people.
       -5 Expired ID document.
       -6 The liveness test did not obtain a valid result (is it a photo?).
       -7 Process not yet finished.
       -8 The recipient is very different from the photo on the ID document or the ID document is not valid
       -9 Verification of an ID document number was requested that does not match the one provided by the recipient.
DNIAnverso : Operating system of the device used and version
DNIReverso : Screen resolution of the device used.
AnversoReversoCoinciden : It can be Si or No
DNISolicitado : Screen resolution of the device used.
DNISolicitadoCoincide : It can be Si, No or N/A if an ID document number was not sent in the request
DNI : Data of the verified ID document, the following data is included:
       Edad : Real age
       FechaNacimiento: Date of birth
       DNI: ID document number that appears on the document
       Nacionalidad: Nationality of the person
       Pais: Country
       Nombre: Full name in format Surnames, Name
       NumeroSerie: Serial number of the document
       TipoDocumento: Document type
       Sexo : Sex F Woman, M Man
       FechaExpira : Date on which the document expires.
       Caducado : It can be Si or No
ProcesoRelizadoMismaPersona : It can be Si or No
Barba : It can be Si or No
Bigote : It can be Si or No
GafasLectura : It can be Si or No
GafasSol : It can be Si or No
Sexo : Indicates the apparent sex and the probability that it is the indicated sex, for example: Man with probability of 98.599784851074%
RangoAparenteEdad : Apparent age range, for example 40-50
Dispositivo : Summary of the device used.
ParecidoPersonaDNI : Percentage of similarity between person and ID document. Example: 93.957847595214844
PruebaDeVida : Indicates whether it has passed the liveness test. It can be Si or No.

Example: {"Resultado":93.957847595214844,"DNIAnverso":"00000000T","DNIReverso":"00000000T","AnversoReversoCoinciden":"Si","DNISolicitado":"","DNISolicitadoCoincide":"N/A","DNI":{"Edad":66,"FechaNacimiento":"18/12/1955","DNI":"00000000T","Nacionalidad":"ESP","Pais":"ESP","Nombre":"APARICIO LOPEZ,JUAN","NumeroSerie":"BGHR56776","TipoDocumento":"ID-1","Sexo":"M","FechaExpira":"19/10/2027","Caducado":"No"},"ProcesoRelizadoMismaPersona":"Si","Barba":"No","Bigote":"No","GafasLectura":"No","GafasSol":"No","Sexo":"Hombre con probabilidad de 99.599784851074%","RangoAparenteEdad":"44-62","Dispositivo":"Android.v11-Chrome.v92.0.4515.131","ParecidoPersonaDNI":93.957847595214844,"PruebaDeVida":"Si"}

Request samples

Content type
{
  • "Servicio": "VERIFICACION_IDENTIDAD",
  • "ID": "299846332",
  • "FechaEnvio": "2021-10-10 10:10",
  • "Estado": "5001",
  • "UltimaActualizacion": "2021-10-10 10:10",
  • "Acceso": "{\"Fecha\":\"2021-09-04 19:37:21\",\"IP\":\"85.10.20.221\",\"Puerto\":\"11892\"}",
  • "Telefono": "34600000000",
  • "DNIAnverso": "00000000T",
  • "DNIReverso": "00000000T",
  • "DNISolicitado": "00000000T",
  • "Posicion": "{\"Direccion\":\"C. de las calles, 8B, 28333 Madrid, Spain\",\"Coordenadas\":{\"Longitud\":\"-1.6592592\",\"Latitud\":\"4.4577993\",\"Altura\":75.70229058041491,\"Precision\":15.265999794006348}}",
  • "Dispositivo": "{\"browser\":\"Chrome 92.0.4515.131\",\"SysOp\":\"Android 11\",\"displayResolution\":\"360 x 800\"}",
  • "Result": "{\"Resultado\":93.957847595214844,\"DNIAnverso\":\"00000000T\",\"DNIReverso\":\"00000000T\",\"AnversoReversoCoinciden\":\"Si\",\"DNISolicitado\":\"\",\"DNISolicitadoCoincide\":\"N\\/A\",\"DNI\":{\"Edad\":66,\"FechaNacimiento\":\"18\\/12\\/1955\",\"DNI\":\"00000000T\",\"Nacionalidad\":\"ESP\",\"Pais\":\"ESP\",\"Nombre\":\"APARICIO GARCIA,RAFAEL\",\"NumeroSerie\":\"BGT78666\",\"TipoDocumento\":\"ID-1\",\"Sexo\":\"M\",\"FechaExpira\":\"19\\/10\\/2027\",\"Caducado\":\"No\"},\"ProcesoRelizadoMismaPersona\":\"Si\",\"Barba\":\"No\",\"Bigote\":\"No\",\"GafasLectura\":\"No\",\"GafasSol\":\"No\",\"Sexo\":\"Hombre con probabilidad de 99.599784851074%\",\"RangoAparenteEdad\":\"44-62\",\"Dispositivo\":\"Android.v11-Chrome.v92.0.4515.131\",\"ParecidoPersonaDNI\":93.957847595214844,\"PruebaDeVida\":\"Si\"}"
}

Query and download PDF Certificate with the Identification

/GetCertificadoIdentidad

Obtaining the PDF file with the certificate of the identity verification process sent through the API. This function is usually executed in response to a report reception with certificate status (Status 5100) . The PDF file is downloaded directly if the function executes successfully.

Authorizations:
basicAuth
query Parameters
Id
required
integer
Example: Id=1283876988

ID identifier returned in the send function.

Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Type of response to return as the result of the call.
ANT - (Obsolete). Kept for compatibility with previous versions
JSON - The response will be returned in JSON
XML - The response will be returned in XML
TXT - The response will be returned in Text format

Request Body schema:

Parameters are sent in the body of the POST request, either as a JSON object (Content-Type application/json, RECOMMENDED) or as an application/x-www-form-urlencoded form. In the form format, array or object parameters are sent as a JSON-encoded string. Parameter names are case-insensitive. The detailed description of each parameter is in the parameters section of this operation.

Id
required
integer
Resp
string

Responses

Response Schema:
string

Request samples

Content type
{
  • "Id": "1283876988",
  • "Resp": "JSON"
}

Response samples

Content type
In case of success, a PDF file with the contract certificate is downloaded.

Credits Query

/GetCreditos

Function that returns the number of credits in the account. It is a function of very sporadic use since most of the functions return in their responses the number of Credits remaining for the user. Therefore, it is usually used simply as a functioning test or to obtain the number of credits occasionally

Authorizations:
basicAuth
query Parameters
Resp
string
Enum: "TXT" "JSON" "XML"
Example: Resp=JSON

Type of response to return as the result of the call.
ANT - (Obsolete). Kept for compatibility with previous versions
JSON - The response will be returned in JSON
XML - The response will be returned in XML
TXT - The response will be returned in Text format

Request Body schema:

Parameters are sent in the body of the POST request, either as a JSON object (Content-Type application/json, RECOMMENDED) or as an application/x-www-form-urlencoded form. In the form format, array or object parameters are sent as a JSON-encoded string. Parameter names are case-insensitive. The detailed description of each parameter is in the parameters section of this operation.

Resp
string

Responses

Response Schema:
Array
Res
required
integer <int32>

Response of the requested function


1 The function concluded successfully.
-1 Authentication error.

Cred
required
double

Credits remaining in the user account after sending.

Request samples

Content type
{
  • "Resp": "JSON"
}

Response samples

Content type
[
  • {
    }
]