Skip to content

🇪🇨 Overview

In this section, you will find information on the input data required for the profile of a person in Ecuador, the reports available, the report settings and how to perform queries to create a person, get a person’s status and its reports details.

📘 Have you read our intro?

This section contains the specifics about the input profile and the reports available in Ecuador. To better understand it, we recommend you take a look at our Getting Started section too. 😊

Input fieldDescriptionExample
city_locodeThe UN LOCODE of the city where the person is located (or another city according to your needs to direct the BGC process). Always required.EC GYE
document_idDocument ID Number for Ecuador. Número de Cédula / NUI.00000000

👍 Want to jump into action?

Check out our API Reference section and start using it right away! 😊

Report nameDescriptionSource/database
cedula_detailsChecks Document ID (Cédula/NUI) and retrieves detailsRegistro Civil
license_statusChecks Driver’s License status.Agencia Nacional de Tránsito
driving_recordChecks Driver’s License records.Sistema de Citaciones - Agencia Nacional de Tránsito
justice_recordChecks Justice System for criminal records.Consejo de la Judicatura

The report_settings object is the place for you to customize specific behaviours of the reports available. In Ecuador, the license_status and driving_record reports can be customized to determine the best rule for your users/candidates pipeline according to your needs.

There are three settings available for the License Status report:

NameDescription
required_license_typesA list of the license types that are required to generate a PASSED result. It is required at least one of the license types in the list. Default is set to ["B", "C", "D"].
validity_checkThis is a boolean flag to indicate if the validity of the driver’s license should be checked by the report (i.e. check if the license is expire or not). Default is set to True.

Driver Licenses are identification documents granted by transit authorities of Ecuador that are needed in order for a person to be able to drive a motor vehicle within national territories. There are Non-Professional and Professional Licenses and different types of these depending on the vehicle being driven.

TypeIntended use
AFor motorized vehicles such as: mopeds, motorcycles, tricar and quadrones.
BFor mobile homes or for cars and trucks with attached trailers of up to 1.75 tons of payload.
FFor vehicles adapted according to the special capacity of the driver.
TypeIntended use
A1For mototaxis and tricycles intended for commercial services and for those of Type A.
CFor conventional taxis, executive taxis, light vans or mixed vehicles up to 3,500 kg and up to 8 passengers. Also, for passenger transport vehicles with no more than 25 seats and for those of Type B.
C1For police vehicles, military ambulances, municipal vehicles and any vehicle of the Ecuadorian State intended for emergencies and security control.
DFor passenger service vehicles, be it interprovincial, intraprovincial, intracantonal, intraregional and on own account. Also, for vehicles of the Ecuadorian State included in Type B and not considered in Type C1.
D1For school buses, institutional buses and tourism buses for up to 45 passengers.
EFor heavy and extra heavy trucks with or without a trailer of more than 3.5 tons, trailers, dumptrucks, tankers, public platforms, own account, other trucks and Ecuadorian State vehicles with such characteristics.
E1For railways, rail cars, motor pumps, trolleybuses, to transport goods or dangerous substances and other special vehicles.
GFor agricultural machinery, heavy machinery, road equipment, such as tractors, motor graders, backhoes, forklifts, mechanical shovels and others.

📘 Emptor Tips 🕵️‍♀️

⚠ Due to the pandemic caused by COVID-19, Ecuador has extended Driver’s Licenses validity upon the provision of the Resolución Nro.060-DE-ANT-2020.

To disable the validity check, simply include the validity_check set to False to the report_settings in the data sent to the Create a Person endpoint, like this:

{
...
"report_settings": {
"license_status": {
"validity_check": false,
...
}
...
}
}

For more details, check out the API reference. 📖

There are three settings available for the Driving Record report, which will be applied to the outcome definition according to the Driving Record Outcome Workflow:

NameDescription
minimum_pointsThe minimum amount of points required in the drivers license for a driver to be PASSED.
failed_articles_listA list of traffic infraction articles that should return FAILED if any match is found for them in the fines list with status in the failed_statuses. Values allowed are any value that can be found in the fields article or full_article in the output details of the report. Examples: Art. 386 - Lit. 05, 375, etc. Default list is set to ["375", "376", "377", "384", "385"].
failed_statusesA list of fine statuses to be considered when looking for a match for the failed_articles_list. Default is set to ["PENDING", "CONTESTED", "PAID", "SETTLEMENT"].
StatusSource status
PENDINGPendientes
CONTESTEDEn Impugnación
CANCELEDAnuladas
PAIDPagadas
SETTLEMENTEn Convenio

The driving record report follows a specific workflow to determine the outcome based on the configured settings and the data retrieved from the Agencia Nacional de Tránsito.

📘 Emptor Tips 🕵️‍♀️

Each fine found in the Driving Record report includes three important fields:

  • article: infraction legislation numeric-only index extracted from the article_description field.
  • full_article: infraction legislation detailed index extracted from the article_description field.
  • article_description: the description of the fine applied to the driver extracted from the Agencia Nacional de Tránsito records

For example, for an article_description that is read like this:

Art. 386 - Lit. 05. COND. VEHICULO CON CATEGORÍA DIFERENTE A LA AUTORIZADA

The article value would be simply 386, while the value for full_article would be Art. 386 - Lit. 05.

In the JSON object output, it will look like this:

{
"article": "386",
"full_article": "Art. 386 - Lit. 05",
"article_description": "Art. 386 - Lit. 05. COND. VEHICULO CON CATEGORÍA DIFERENTE A LA AUTORIZADA"
...
}

✅ The failed_articles_list accepts values from both the article and the full_article fields.

This means that, if you want to have a FAILED outcome only for cases when the Lit. 05 is present, but not all Literales within article 386, you can add to your list the full article as in ["Art. 386 - Lit. 05"].

Note: Remember that you will only have a FAILED outcome if the fine status is also included in the failed_statuses list.

Therefore:

  • If you add ["386"] to the failed_articles_list, all cases where article value is 386 would be considered, regardless if full_article is Art. 386 - Lit. 01, Art. 386 - Lit. 02, Art. 386 - Lit. 03, for example.
  • If you add ["Art. 386 - Lit. 05"] to the failed_articles_list, only cases where full_article matches exactly that value will be considered, not including other cases such as Art. 386 - Lit. 01, Art. 386 - Lit. 02, Art. 386 - Lit. 03.

To create a person, copy and paste the following command or code, replacing the dummy data with the person’s data you want to use and the YOUR_API_KEY string with your API Key, respectively:

Terminal window
curl --request POST \
--url https://api.emptor.io/v3/ec/persons/ \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"reports":{"license_status":"enabled","driving_record":"enabled","justice_record":"enabled"},"city_locode":"EC GYE","document_id":"00000000"}'
const fetch = require('node-fetch');
let url = 'https://api.emptor.io/v3/ec/persons/';
let options = {
method: 'POST',
headers: {Accept: 'application/json', 'Content-Type': 'application/json'},
body: JSON.stringify({
reports: {
license_status: 'enabled',
driving_record: 'enabled',
justice_record: 'enabled'
},
city_locode: 'EC GYE',
document_id: '00000000'
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));
import requests
url = "https://api.emptor.io/v3/ec/persons/"
payload = {
"reports": {
"license_status": "enabled",
"driving_record": "enabled",
"justice_record": "enabled"
},
"city_locode": "EC GYE",
"document_id": "00000000"
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)

To get a person’s status, you will need the person_id returned by our API in the Create a Person step. Use that with your API Key inside the following command or code (in the example below, the person_id is 0597f9f8-2ea5-4557-b3a1-5a590ed96ef4):

Terminal window
curl --request GET \
--url https://api.emptor.io/v3/ec/persons/0597f9f8-2ea5-4557-b3a1-5a590ed96ef4/status \
--header 'Accept: application/json' \
--header 'X-Api-Key: YOUR_API_KEY'
const fetch = require('node-fetch');
let url = 'https://api.emptor.io/v3/ec/persons/0597f9f8-2ea5-4557-b3a1-5a590ed96ef4/status';
let options = {
method: 'GET',
headers: {Accept: 'application/json', 'X-Api-Key': 'YOUR_API_KEY'}
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));
import requests
url = "https://api.emptor.io/v3/ec/persons/0597f9f8-2ea5-4557-b3a1-5a590ed96ef4/status"
headers = {
"Accept": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
response = requests.request("GET", url, headers=headers)
print(response.text)

To get the details for the person’s reports, you will need the person_id returned in the Create a Person step. Use that with your API Key inside the following command or code (in the example below, the person_id is 0597f9f8-2ea5-4557-b3a1-5a590ed96ef4):

Terminal window
curl --request GET \
--url https://api.emptor.io/v3/ec/details/0597f9f8-2ea5-4557-b3a1-5a590ed96ef4 \
--header 'Accept: application/json' \
--header 'X-Api-Key: YOUR_API_KEY'
const fetch = require('node-fetch');
let url = 'https://api.emptor.io/v3/ec/details/0597f9f8-2ea5-4557-b3a1-5a590ed96ef4';
let options = {
method: 'GET',
headers: {Accept: 'application/json', 'X-Api-Key': 'YOUR_API_KEY'}
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));
import requests
url = "https://api.emptor.io/v3/ec/details/0597f9f8-2ea5-4557-b3a1-5a590ed96ef4"
headers = {
"Accept": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
response = requests.request("GET", url, headers=headers)
print(response.text)

📘 How to get an API Key

The API Key is the token you will need to authenticate at our systems. If you still need to get one, please contact us.