Checks API

NOTE: Truora provides a Postman collection online that includes the necessary tools to simplify the testing process.

Welcome to the Truora Check RESTful API reference. If you haven’t already, we strongly advise you to check out our Guides Section.

Truora Check API allows performing full background checks on people, vehicles and companies. There are three main types of background checks:

  • Personal background check: Verifies national IDs in multiple databases of public and legal entities in the LATAM region. For every national ID, returns information on: personal identity, criminal records, international background check, and professional background.
  • Vehicle background check: Verifies the vehicle documents and the owner identity in multiple databases of public and legal entities in the LATAM region. For every vehicle and owner type, returns information on: personal identity, driving records, criminal records, and vehicle information.
  • Company background check: Verifies the tax ID or a company name in multiple databases of public and legal entities in the LATAM region. For every company, returns the associated: business status, legal and criminal records, and media reports.

Authentication

To access Truora’s services and perform API calls securely, you need to authenticate your requests. This is done by including a specific authentication token, known as the โ€Truora-API-Keyโ€ in the header of your requests.

By providing this key in your API requests, you establish a secure and authorized connection, enabling seamless interaction with Truora’s services.

  • If you haven’t already, sign up for a free account here before generating your Truora-API-Key.
  • Learn how to generate your Truora-API-Key here.
Base URL

https://api.checks.truora.com

Checks

Checks API enables you to create and retrieve background checks. It consults multiple databases and provides a comprehensive set of information to assess the reliability of a person, vehicle, or company. Explore our guide on Background Checks for further details.

Create check

Creates a background check and queues it to start collecting information. The full details of background checks can be retrieved with their respective Check IDs using getCheck endpoint. Keep in mind that, depending on the check type, input document, and country of a search, certain inputs are required. You should always provide as many inputs as possible in order to get the highest accuracy.

If your check type is not referenced in the following table, please reach out to find out the fields that apply for you.

CountryPerson-NationalPerson-ForeignerCompanyVehicle-NationalVehicle-Foreigner
Chile
CL
national_id*
date_of_birth
phone_number
issue_number
foreign_id*
date_of_birth*
phone_number
first_name*
last_name*
native_country*
issue_number
N/Anational_id*
license_plate*
driver_license (Santiago only)
foreign_id*
first_name*
last_name*
date_of_birth*
native_country*
license_plate*
driver_license (Santiago only)
Colombia
CO
national_id*
date_of_birth
issue_date
phone_number
foreign_id* or PPT*
date_of_birth*
phone_number
issue_date*
tax_id*
national_id
national_id*
date_of_birth
phone_number
license_plate*
owner_document_type
owner_document_id
foreign_id*
date_of_birth
phone_number
license_plate*
issue_date*
Mexico
MX
national_id*
phone_number
foreign_id*tax_id*license_plate*
national_id
vehicle_id
driver_license(Estado de Mexico only)
N/A
Brazil
BR
national_id*
date_of_birth*
region*
phone_number
N/Atax_id*license_plate*N/A
Costa Rica
CR
national_id*
phone_number
foreign_id*
phone_number
N/Alicense_plate*N/A
Peru
PE
national_id*
date_of_birth*
phone_number
foreign_id*
ptp
date_of_birth
phone_number*
N/Anational_id*
date_of_birth*
license_plate*
foreign_id*
ptp
date_of_birth*
license_plate*
International
ALL
name*name*company_name*N/AN/A
(*) Required field

Request
Request Body *application/x-www-form-urlencoded
country enum
[Required]
Allowed: ALL | BR | CO | CL | MX | PE | CR

Document country

type enum
[Required]
Allowed: person | vehicle | company | custom_type_name

Background check type. Replace custom_type_name with the name of your custom type to perform a custom type check

user_authorized boolean
[Required]

Indicates whether the person subject to the validation authorized the validation. Must be true in order to proceed [Required for API key V1 or later]

passport string

Person passport

pep string

ID for Venezuelans working in Colombia

native_national_id string

National ID from the person native country. Keep in mind that you must provide the native_country if you enter a native_national_id

date_of_birth string

Person birthdate. This date is used to get some additional information about a person and to filter homonyms in some cases. YYYY-MM-DD format, Required for complete background checks in Brazil and Perรบ

payment_date string

Payment day of a vehicle circulation permit (Chile only)

issue_number string

Document number of Chilean identity. This number is used to get some additional information about a person. Chile only

last_name string

Person or entity last name. If the document type and number are not provided, the report might include homonyms. Required when searching by last name. Required in order to get complete background checks in Brazil

custom_input string

Optional external identifier stored in the database along with the main structure. Used for reference purposes only, without affecting processing or logic. (Maximum length: 128 characters).

state_id string

Used for the RG (Registro Geral) identification in Brazil. This identification has different formats according to the state that issues the document. It can have numbers and letters but other characters (- * , . ) are omitted, Required in order to get complete background checks in Brazil

diplomatic_id string

Diplomatic ID

certificate_folio string

Folio for Chilean certificate search. Chile only

report_id string

Report ID the background check will be inserted into

driver_license string

Driver’s license number

verification_code string

Verification code registered for criminal records in Peru and Chile

national_id string

National ID

owner_document_type string

national-id, foreign-id, tax-id or passport

force_creation boolean

Defines the behavior of the API when creating a background check with the same input values used for a recently created background check.

When true, forces the creation of a new background check; otherwise, it returns the result of the background check created earlier.

foreign_id string

Person foreign ID

company_name string

Company name “Don’t forget this required field to complete background checks in Brazil”

imei string

15-digit IMEI to be validated

issue_date string

Person document issue date in “YYYY-mm-dd” format (e.g. 2008-12-31) . This date is used to get some additional information about a person in some cases

professional_card string

Professional ID card

tax_id string

Company ID used for tax payments

escrow string

Colombian escrow

region enum
Allowed: DF | AC | AL | AP | AM | BA | CE | ES | GO | MA | MT | MS | MG | PA | PB | PR | PE | PI | RJ | RN | RS | RO | RR | SC | SP | SE | TO | ALL

Region where the background is to be checked in addition to the region where the person is from. By default, background checks in Brazil are performed in the person region of birth according to their CPF. Required for Brazil only. Keep in mind that a nation-wide search can take more than 24 hours to complete, whereas region-specific searches take from 2 to 20 min to complete.

Allowed values are: DF: Distrito Federal, AC: Acre, AL: Alagoas, AP: Amapรก, AM: Amazonas, BA: Bahรญa, CE: Cearรก, ES: Espรญrito Santo, GO: Goiรกs, MA: Maranhรฃo, MT: Mato Grosso, MS: Mato Grosso do Sul, MG: Minas Gerais, PA: Parรก, PB: Paraรญba, PR: Paranรก, PE: Pernambuco, PI: Piauรญ, RJ: Rรญo de Janeiro, RN: Rรญo Grande do Norte, RS: Rรญo Grande do Sul, RO: Rondรดnia, RR: Roraima, SC: Santa Catarina, SP: Sรฃo Paulo, SE: Sergipe, TO : Tocantins, ALL: nation-wide search

first_name string

Person or entity first name. If the document type and number are not provided, the report might include homonyms. Required when searching by first name, Required in order to get complete background checks in Brazil

license_plate string

Vehicle license plate

native_country enum
Allowed: CO | MX | PE | BR | EC | CL | VE

Country of birth. Required if native_national_id is provided

phone_number string

Person phone number. Required by law to notify the person their background is being checked

vehicle_id string

Vehicle NIV number

watch string

Indicates whether the check score is to be periodically revised and its frequency. It can be daily, weekly, monthly, yearly or have a custom frequency written as a number accompanied by d: day, w: week, m: month, y: year for instance: 3d: every three days, 2w: every two weeks. Ignore this field if the check is only to be performed once

birth_certificate string

Person birth certificate

owner_document_id string

ID of the vehicle owner

ptp string

ID for Venezuelans working in Peru

This field also apply for PPT (Permiso de Protecciรณn Temporal) in Colombia

List checks

Lists all the existing checks created in the account. If report_id is provided, it will only return the checks from the report
Response
get /v1/checks
Query Parameters
report_id string
[Optional]
ID of the report of background checks to be returned.
start_key string
[Optional]
Start key value for the pagination.

Get check

Returns the results of the check that matches the ID provided, complete with a set of scores explained below.

Scores:

  • Global Score: Average risk associated with a person, company or vehicle, according to the background check results. The global score considers results that are validated with the ID number provided. The score ranges from 0 to 1, where 0 represents high risk and 1 low risk.
  • ID Score: Average risk associated with a person according to the background check results. The ID score considers the results that are validated with a person identity document. The score ranges from 0 to 1, where 0 represents high risk and 1 low risk.
  • Name Score: Average risk associated with a person according to the background check results. The name score considers results that are validated against the name of a person and could not be validated with their ID number. These results might have homonyms associated with them. The score ranges from 0 to 1, where 0 represents high risk and 1 low risk.

In order to calculate these scores, a weighted average is considered with different weights allocated to each dataset. Scores can be customized using the config endpoints by assigning a weight to each dataset according to its relevance.

Keep in mind that results from the API vary depending on the country, check type and the inputs entered on check creation.

Response
get /v1/checks/{check_id}
Path Parameters
check_id string
[Required]
A unique identifier for a check.

Get Check Attachments

Enables the download of PDF documents associated with the check result. This will list all the files found for a given check and provide the link for downloading
Response
get /v1/checks/{check_id}/attachments
Path Parameters
check_id string
[Required]
A unique identifier for a check.

List Check Details

Lists all details associated with a check, with support for pagination. It includes a list of data sources along with their respective information
Response
get /v1/checks/{check_id}/details
Path Parameters
check_id string
[Required]
A unique identifier for a check.
Query Parameters
lang string
[Optional]
Specifies the desired language for details; use lowercase ISO 639-1 format. If not specified, details will be provided in their original language.
start_key string
[Optional]
Start key value for the pagination.

Summarize

Returns a summary in a human readable way for the specified check id. It is useful when the details of the check are too long when reviewing manually
Response
get /v1/checks/{check_id}/summarize
Path Parameters
check_id string
[Required]
A unique identifier for a check.

Get the status of a database

Retrieve the current status of all databases that match with query parameters. This endpoint assists in determining the suitability of making a Check, allowing to review the availability of a database at any given moment.
Response
get /v1/health
Query Parameters
country string
[Required]
Country code in uppercase ISO 3166 format (e.g., CO for Colombia).
unixTimestampSeconds number
[Required]
Unix timestamp in seconds. Send a day timestamp to view the database hourly status for that day or send the current time to know the current database status.
unixtimezoneOffsetSeconds number
[Required]
Offset between the local time and the UTC time in seconds. (e.g., Colombia is at UTC -18000 seconds).

Delete check

Deletes the check that matches the Check ID provided, along with relevant information about that specific check. If the check belongs to a continuous check, it will be deleted only if isn’t the first one.
Response
delete /v1/checks/{check_id}
Path Parameters
check_id string
[Required]
A unique identifier for a check.

Custom-Type

The Custom Type API enables the creation of custom searches, allowing you to include only the desired datasets in background checks, thus enhancing the check efficiency. Moreover, you can customize the impact of each dataset on the global score by assigning it a weight value between 0 and 1. It’s important to note that the sum of all weights must equal 1.

You can use custom types in your checks to perform custom-type checks. For detailed information, refer to our Custom Type guide.

Create custom type

Create a custom type selecting the weight for each background check dataset and the country where it applies. Weights are numbers between 0 and 1 that represent how impactful the dataset is for the score, where datasets with weight 0 do not influence the score but are searched nonetheless. Keep in mind that the sum of all weights must equal 1. To perform a check with the custom type, create a Check and enter the name you gave to your custom type in type
Request
Request Body *application/x-www-form-urlencoded
type string
[Required]

Custom type name. It cannot be person, vehicle, or company. Use this type in your checks to perform custom-type checks

country enum
[Required]
Allowed: ALL | BR | CL | CO | MX | PE

Country where this set of rules applies. Use “all” if the check type searches by name by relying on international databases

dataset_criminal_record number

Criminal record weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_taxes_and_finances number

Taxes and financial background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_driving_licenses number

Driving license weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_alert_in_media number

Alert in media weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_international_background number

International background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_traffic_fines number

Traffic fines weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_vehicle_information number

Vehicle information weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_affiliations_and_insurances number

Affiliation and insurance weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_business_background number

Business background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_legal_background number

Legal background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_personal_identity number

Personal identity weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_professional_background number

Professional background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_vehicle_permits number

Vehicle certificate background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

post /v1/config

Update custom type

Allows updating a custom type. Person, vehicle, and company types are not modifiable. Please visit How to Create a Custom Type for Background Check guide for more information.
Request
Request Body *application/x-www-form-urlencoded
type string
[Required]

Custom type name. It cannot be person, vehicle, or company. Use this type in your checks to perform custom-type checks

country enum
[Required]
Allowed: ALL | BR | CL | CO | MX | PE

Country where this set of rules applies. Use “all” if the check type searches by name by relying on international databases

dataset_alert_in_media number

Alert in media weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_driving_licenses number

Driving license weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_criminal_record number

Criminal record weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_traffic_fines number

Traffic fines weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_taxes_and_finances number

Taxes and financial background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_affiliations_and_insurances number

Affiliation and insurance weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_business_background number

Business background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_legal_background number

Legal background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_personal_identity number

Personal identity weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_professional_background number

Professional background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_vehicle_permits number

Vehicle certificate background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_international_background number

International background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

dataset_vehicle_information number

Vehicle information weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time

Response
put /v1/config

List custom types

Lists all custom types of the associated account. Please visit How to Create a Custom Type for Background Check guide for more information.
Response
get /v1/config
Query Parameters
start_key string
[Optional]
Start key value for the pagination.

Delete custom type

Allows deleting a custom type. Please note that person, vehicle, and company custom types can not be deleted.

After deletion, the response will display the remaining custom types associated with the country of the deleted custom type.

Response
delete /v1/config
Query Parameters
country string
[Required]
Country where the custom type is valid. Use ISO 3166 format in uppercase (e.g., CO for Colombia)
type string
[Required]
Name of the custom type to be deleted.

Settings

Allows the configuration of parameters such as names matching type, retries and max duration.

Create setting

Allows setting up both retries and names matching type. Keep in mind that this feature is a configuration at a Client level, so it will affect all your check types.
Request
Request Body *application/x-www-form-urlencoded
max_duration string

Indicates the maximum amount of time a check can take to fetch responses. It follows the following format "xt" where x is a number and t is a letter ( m for minutes or h for hours). Example 25m indicates 25 minutes, 2h indicates 2 hours. This value must be between 15 minutes and 7 days (168 hours). When not configured, it is set to default. If retries is enabled, the default max duration is set to 48 hours; otherwise, it is set to 3 hours for Colombia, Mexico, Peru, and Brazil; 48 hours for Chile and International searches; and 72 hours for Costa Rica

names_matching_type enum
Allowed: soft | exact

Defines the matching type between the names retrieved from the identity databases and the names found in the criminal, legal and international databases to determine whether a record should be included in the check or not. soft (used by default) means matching names when they are similar enough to be considered the same person (e.g., Maria Alejandra Gomez would match Alejandra Gomez). exact means the names must perfectly match. Keep in mind that this feature is a configuration at a Client level, so it will affect all your check types

retries boolean

Indicates whether or not database queries must be retried until they successfully return a response or until the max_duration time is reached

Response
post /v1/settings

Continuous

Enables the creation of recurring checks with customizable frequency, providing notifications whenever there are changes in check scores.

Create Continuous Check

Creates a continuous check that will run background checks recurrently according to the frequency provided.
Request
Request Body *application/x-www-form-urlencoded
frequency string
[Required]

Time between background checks. It can be daily, weekly, monthly, yearly or have a custom frequency written as a number accompanied by a letter d: day, w: week, m: month, y: year. For instance: 3d: every three days, 2w: every two weeks

end_date string
[Required]

Date on which background checks will stop. YYYY-MM-DD format. For the date to be valid, it must allow at least one check to be run according to the frequency.

check_id string
[Required]

Background checks to be processed recurrently

post /v1/continuous-checks

Update Continuous Checks

Updates a continuous check using its ID. This method can only modify its frequency and status
Request
Request Body *application/x-www-form-urlencoded
status enum
Allowed: enabled | disabled

Indicates whether the background checks must be processed recurrently

version enum
Allowed: 0 | 1

API Key version to be used for the continuous check hooks. This version must match API key version you use. Version 0 is used by default.

frequency string

Time between background checks

Response
put /v1/continuous-checks/{continuous_check_id}
Path Parameters
continuous_check_id string
[Required]
Unique ID assigned after calling CreateContinuousCheck.

List Continuous Checks

Lists all continuous checks created in the given account. This method returns the ’next’ attribute to paginate for the next results
Response
get /v1/continuous-checks

Get Continuous Checks

Returns the specified continuous check using its ID. This method returns the last check executed and provides information such as frequency, status, count and end date
Response
get /v1/continuous-checks/{continuous_check_id}
Path Parameters
continuous_check_id string
[Required]
Unique ID assigned after calling CreateContinuousCheck.

List Continuous Check Logs

Returns Continuous Check Logs. These logs are useful for analyzing the behavior of the check over time. Each entry includes details of what changed
Response
get /v1/continuous-checks/{continuous_check_id}/history
Path Parameters
continuous_check_id string
[Required]
Unique ID assigned after calling CreateContinuousCheck.

PDF

Enables the export of a comprehensive PDF containing the obtained information, Truora’s assigned score, and consulted datasets. For more details, refer to Background Checks: PDF, Variables and Attachments guide.

Create PDF

Create PDF receives a check id and starts the conversion to PDF. Once the method is finished, it will return a link where the file can be downloaded
Response
post /v1/checks/{check_id}/pdf
Path Parameters
check_id string
[Required]
A unique identifier for a check.

Get PDF

Get PDF downloads the PDF in the specified language, Spanish by default. This endpoint must be called after making the POST call
Response
get /v1/checks/{check_id}/pdf
Path Parameters
check_id string
[Required]
A unique identifier for a check.
Query Parameters
lang string
[Optional]
Specifies the language of the PDF; use lowercase ISO 639-1 format. If not specified, the PDF will be downloaded in Spanish by default.

Batch

Given a valid xlsx file, this endpoint takes the information from the file and starts creating the checks and associating it to the specified report object. For a step-by-step explanation of all methods and required fields for submitting a batch, please refer to the Background Checks Batch via API guide.

Create Batch

This endpoint facilitates the creation of batches of different types. This endpoint does not include input file uploading or batch start logic.

The check inputs to be uploaded in the file can be manually mapped using columns_mapping.{input_name} body params, by default the inputs accepted by the check type will be mapped. The request will return a columns array with the order in which the inputs should be in the xlsx file.

The batch creation request returns a temporary URL in the file_upload_link field. This URL must be used to make a PUT request with the file containing the mapped batch data. It is crucial to note that the URL has a limited expiration time (30min) and will only allow the first submitted file to be uploaded. Therefore, it is highly recommended to carefully review the information before uploading.

Request
Request Body *application/x-www-form-urlencoded
service enum
[Required]
Allowed: checks

The service for which the batch will be processed

country enum
[Required]
Allowed: ALL | BR | CO | CL | MX | PE | CR

The country of batch checks

type enum
[Required]
Allowed: person | vehicle | company | custom_type_name

Type of the batch checks. Replace custom_type_name with the name of your custom type to perform a batch of custom type checks. In case you want to create a custom type please visit How to Create a Custom Type for Background Check guide for more information.

columns_mapping.{input_name} number

Columns mapping of the xlsx file. This body parameter must be sent for each column you want to upload in the xlsx file, replacing the input_name with the name of the input (e.g. columns_mapping.national_id). The value must be the index of the column in the file, being 0 for column A, 1 for column B and so on. If no column mapping is sent, all inputs for the selected custom type will be automatically mapped.

end_date string

Date on which background checks will stop to create a batch of continuous checks. YYYY-MM-DD format. For the date to be valid, it must allow at least one check to be run according to the frequency.

frequency string

Time between background checks to create a batch of continuous checks. It can be daily, weekly, monthly, yearly or have a custom frequency written as a number accompanied by a letter d: day, w: week, m: month, y: year. For instance: 3d: every three days, 2w: every two weeks

Response
post /v1/batches

Request Batch Report Generation

This endpoint requests the generation of a report for a specific batch. The format of the report can be specified via a query param.
Request
Request Body *application/x-www-form-urlencoded
format string
[Required]

Batch report file format

post /v1/batches/{batch_id}/report
Path Parameters
batch_id string
[Required]
Unique identifier of the batch.

Start Batch

This endpoint starts the execution of a specific batch. The batch needs to have an uploaded file for this to succeed.
post /v1/batches/{batch_id}/start
Path Parameters
batch_id string
[Required]
Unique identifier of the batch.

Stop Batch

This endpoint is used to stop a specific batch (updating its status to “stopped”) only if it’s currently in progress or not started yet.
Response
put /v1/batches/{batch_id}
Path Parameters
batch_id string
[Required]
Unique identifier of the batch.

Get Batch

This endpoint returns a specific batch’s information, including its creation date, size, status and failure reason.
Response
get /v1/batches/{batch_id}
Path Parameters
batch_id string
[Required]
Unique identifier of the batch.

Get Batch Report

This endpoint obtains a previously requested batch report. If no report exists yet for the batch it returns a 404 response.
get /v1/batches/{batch_id}/report
Path Parameters
batch_id string
[Required]
Unique identifier of the batch.

Shared Accounts

Truora Shared accounts API allows accessing services that are transversal to all other services like Background checks or Validators

Authentication

To access Truora’s services and perform API calls securely, you need to authenticate your requests. This is done by including a specific authentication token, known as the โ€Truora-API-Keyโ€ in the header of your requests.

By providing this key in your API requests, you establish a secure and authorized connection, enabling seamless interaction with Truora’s services.

  • If you haven’t already, sign up for a free account here before generating your Truora-API-Key.
  • Learn how to generate your Truora-API-Key here.
Base URL

https://api.account.truora.com

Digital Identity

NOTE: Truora provides a Postman collection online that includes the necessary tools to simplify the testing process.

Truora Digital Identity (Truora DI) is a versatile platform that allows you to create a personalized process for authenticating your users. It enables you to utilize a range of Validators in a single process to simplify user identity verification. The Validators enable diverse actions, ranging from verifying that a phone or email belongs to the user, to matching usersยด biometrics against government sources. The platform offers the flexibility to create the processes securely and without introducing complexity to the user experience, ensuring your new users can promptly access and enjoy your services.

Authentication

To access Truora’s services and perform API calls securely, you need to authenticate your requests. This is done by including a specific authentication token, known as the โ€Truora-API-Keyโ€ in the header of your requests.

By providing this key in your API requests, you establish a secure and authorized connection, enabling seamless interaction with Truora’s services.

  • If you haven’t already, sign up for a free account here before generating your Truora-API-Key.
  • Learn how to generate your Truora-API-Key here.
Base URL

https://api.connect.truora.com

Web

Digital Identity Web is a versatile platform that allows you to create a customized process to authenticate your users. It allows you to use a number of validators in a unique process to simplify user identity verification.

Here you will find the endpoints you need to create process links and get results. If you need to create process flows please see the Documentation.

Generate Token

Once the flow has been created and published, a POST request must be made to generate a temporary API Key. This should be generated every time a user validation is performed.
Request
Request Body *application/x-www-form-urlencoded
key_type enum
[Required]
Allowed: backend | web

API key type

account_id string

User identifier for the person who will perform digital-identity validation. Only used if grant is set to digital-identity. If not sent it is generated automatically. Note that only Account IDs following the regex pattern [a-zA-Z0-9_.-]+ are supported. Please go to Create an Account ID to learn more about it.

api_key_version string

API key version. Version 0 is used by default

document_type enum
Allowed: passport | driver-license | foreign-id | national-id | pep

Document type for the identity verification process. Only used if grant is set to digital-identity

emails array

List of emails to be validated during the identity verification process

grant enum
Allowed: digital-identity | signals

Indicates which service this API key grants access to. Required if key_type is set to web or sdk

key_name string

API key name. Required only if key_type was set to backend

billing_hub string

Billing hubs allow for separated counters and billing. Required if the customer uses billing hubs

country enum
Allowed: ALL | BR | CL | CO | CR | EC | MX | PE | AR

Country for the identity verification process. Required only if grant is set to digital-identity

flow_id string

Validation flow to be performed for the identity verification process. Required only if grant is set to digital-identity

phones array

List of phone numbers to be validated during the identity verification process

redirect_url string

URL where the user is to be redirected once the verification process has ended. Required if grant is set to digital-identity

Response
post /v1/api-keys

Get Result

Allows you to retrieve the current status and details of a process. The status begins as pending and updates to either success or failure when the process completes.

  • Pending: The process is still ongoing.
  • Success: All steps in the process have been successfully completed. If the flow includes validators, all validation_status values must also be successful.
  • Failure: Occurs due to an internal error, timeout, or if the process is declined or expired.

Here’s a comprehensive list of reasons why a process or validation might be declined or expired, as recorded in the declined_reason and expired_reason fields:

If a process includes validators and the identity process times out because a validation did not complete, but all inputs have been uploaded, the system grants an additional 5 minutes to receive a validation response with the final status. This behavior occurs up to 3 times.

On the final attempt to retrieve the validation response, if the validation remains in the pending status, the identity process status will update to failure, with failure_status set to expired.

If a process includes the attributes override_status and override_status_history, it means the final status was modified by an authorized user. In this case, use the override_status attribute instead of status to determine the final status of the process. The override_status_history attribute will contain the history of changes made to the status.

get /v1/processes/{process_id}/result
Path Parameters
process_id string
[Required]
The ID of the process for which results are being retrieved.

WA Engagement

Increase your customer engagement by automating your customer service, marketing and sales process in WhatsApp.

Get Chat

By specifying the unique chat ID, this particular endpoint is designed to retrieve comprehensive chat information, excluding the actual messages within the chat, offering a high-level overview of the chat’s metadata and attributes
get /v1/engagement/chat/{chat_id}

Search Chat Activities

This particular endpoint is designed to retrieve the activities of a chat. Additionally, optional filters can be specified to narrow the search. The endpoint retrieves comprehensive activities information, offering an in depth overview of the activities in a given chats
get /v1/engagement/chat/{chat_id}/activities

Search Chats

This particular endpoint is designed to retrieve the information of multiple chats. Additionally, optional filters can be specified to narrow the search. The endpoint retrieves comprehensive chat information, excluding the actual messages within the chats, offering a high-level overview of the chats’ metadata and attributes
get /v1/engagement/chat/search
Query Parameters
owner string
[Optional]
User email
status enum
[Optional]
Allowed: open | closed | UNASSIGNED

WA Contacts

Add, search and manage your customers (end users) in a single place.

Create contact property

This endpoint is used to create a new contact property with data like its name and type. NOTE: A maximum of 25 visible (non-hidden) properties can exist simultaneously.
Request
Request Body *application/x-www-form-urlencoded
type enum
[Required]
Allowed: string | int | boolean | date | email | enum

Indicates the type of the custom property.

name string
[Required]

Indicates the name of the custom property.

config_values.allowed_values enum
Allowed: value1 | value2 | value3

Required only if type is enum. Add the list of personalized values separated by comma, example: value1, value2, value3.

is_hidden boolean

When set to true, this setting hides the property being created, ensuring it does not appear in a contact’s details. NOTE: A maximum of 25 visible (non-hidden) properties can exist simultaneously.

post /v1/contact-properties

Create contact

This endpoint is used to create a new contact with data like its phone number, name, and optional email and values for custom contact properties.
Request
Request Body *application/x-www-form-urlencoded
phone_number string
[Required]

Indicates the Phone number of the contact that you want to register. Must include the country code (e.g., +570000000000).

name string
[Required]

Indicates the name of the contact that you want to register.

email string

Indicates the email address you want to register (e.g., email@yourdomain.com).

custom_property_values.{{property_id}} string

Indicates the custom property. You must replace the variable {{property_id}}, with the id of the property you want to set for the contact. (e.g., custom_property_values.CCP12345).

Response
post /v1/contacts

Update contact

This endpoint is used to update a specific contact with the ID provided as a path parameter. The contact’s name, email and custom property values can be changed. An optional “emit_sysevent” body parameter can be passed so that the update triggers a sysevent.
Request
Request Body *application/x-www-form-urlencoded
custom_property_values.{{property_id}} string

Indicates the custom property. You must replace the variable {{property_id}}, with the id of the property you want to update for the contact. (e.g., custom_property_values.CCP12345).

email string

Indicates the email address you want to update (e.g., email@yourdomain.com).

name string

Indicates the name of the contact that you want to update.

Response
put /v1/contacts/{contact_id}
Path Parameters
contact_id string
[Required]
The unique identifier of the contact to update.

Get contact properties

This endpoint is used to list pages of contact properties created in our platform. An optional “start_key” query parameter can be passed to continue pagination.
Response
get /v1/contact-properties

Get all contacts

This endpoint is used to list pages of contacts created in our platform. An optional “start_key” query parameter can be passed to continue pagination.
Response
get /v1/contacts

Get contact

This endpoint is used to get the data related to a specific contact with the ID provided as a path parameter.
Response
get /v1/contacts/{contact_id}
Path Parameters
contact_id string
[Required]
The unique identifier of the contact to retrieve.

Delete contact

This endpoint is used to delete a specific contact with the ID provided as a path parameter.
Response
delete /v1/contacts/{contact_id}
Path Parameters
contact_id string
[Required]
The unique identifier of the contact to delete.

DI Processes

Configure and order the validations you want to do in your process. Try and start validating your users by sending a link.

Create Identity

This endpoint allows you to initiate an identity validation process for a specific user. Before using this endpoint, you must create a Flow and generate a temporary api_key linked to the corresponding flow_id. Follow the Web Integration Token Guide to complete this setup. The response will include a process_id, which you’ll use in subsequent process requests.

Important Notes

Token:

You must generate a unique token (api_key) for each identity validation process, even if performed by the same user.

Header Setup:

Set the Truora-API-Key header to the value of the generated token (api_key) required before making this request.

post /v1/processes

Verify Identity

The Verify Identity endpoint processes each step in an identity verification process. It receives step input data, validates it, and updates the process to the next step. The step input must be provided in the request body according to the specific requirements of each step.

To retrieve steps required values and track the process progression use the Read Identity endpoint.

Refer to the Verify Identity Steps guide for a practical example of using the Verify Identity endpoint along with other DI Processes endpoints.

If you need help with a specific integration scenario, please contact our Support Team.

Request
Request Body *application/json
verification_id string
[Required]

The identifier for the verification that the step belongs to.

type string
[Required]

The type of step being verified.

step_id string
[Required]

The identifier for the step being verified.

expected_inputs array
[Required]

An array containing the required inputs for the specified step type. Some steps may not require inputsโ€”omit this parameter in such cases.

post /v1/processes/{process_id}
Path Parameters
process_id string
[Required]
The ID of the process being verified.

Identity Back

Allows stepping back in the identity verification process or retrying the last step.

  • If retry_step is true, the last step is re-executed with the same expected inputs.
  • If retry_step is false or not provided, the process moves one step back.
Request
Request Body *application/x-www-form-urlencoded
retry_step boolean

Indicates whether to retry the previous step with the same expected inputs. If set to true, it decreases current_step by 1 and invokes the verify process.

Response
post /v1/processes/{process_id}/back
Path Parameters
process_id string
[Required]
The ID of the ongoing process.

Update Identity

This API endpoint updates an existing process identified by process_id, modifying changeable process information such as phone number and device details until the process is complete.
Request
Request Body *application/x-www-form-urlencoded
phone_number string

Phone number with country code.

device_info string

Device information in serialized JSON format.

Response
put /v1/processes/{process_id}

List Identity

Retrieves the current status and details of all identity processes. Query parameters can be used to filter results based on specific criteria. When a date range is defined, the search is limited to 2 months. The response includes up to 20 processes per query.

Note: If a process includes the attributes override_status and override_status_history, it means the final status was modified by an authorized user. In this case, use the override_status attribute instead of status to determine the final status of the process. The override_status_history attribute will contain the history of changes made to the status.

get /v1/processes
Query Parameters
declined_reason string
[Optional]
Filters processes by a Declined Reason. Multiple declined_reason parameters can be used to filter results by more than one reason.
end_date string
[Optional]
Specifies the end of the date range for filtering processes. Must be in the ISO 8601 format (YYYY-MM-DDTHH:MM:SSยฑhh:mm). When used, the range between start_date and end_date cannot exceed 2 months. Both start_date and end_date are required for date range filtering.
failure_status string
[Optional]
Filters processes by their failure status, such as expired or pending.
search string
[Optional]
Filters results by matching the provided value against specific fields. For process_id and flow_id, an exact match is required. For other fields, such as account_id, document_number, cell_phone, first_name, and last_name, partial matches are supported. Provide only the value to search for; specifying the field name will not work.
start_date string
[Optional]
Specifies the start of the date range for filtering processes. Must be in the ISO 8601 format (YYYY-MM-DDTHH:MM:SSยฑhh:mm). When used, the range between start_date and end_date cannot exceed 2 months. Both start_date and end_date are required for date range filtering.
start_key string
[Optional]
Specifies the starting key value for pagination. Use this parameter after the first query if more results are available for pagination.
status string
[Optional]
Filters processes by their status: pending, failure, or success.

Read Identity

Retrieves the current status and detailed results of the specified identity process, including the progress of each step.
Response
get /v1/processes/{process_id}
Path Parameters
process_id string
[Required]
The ID of the process to retrieve.

Download PDF

Allows to retrieve the pdf of a process or generates one if it doesn’t exist already
get /v1/processes/{process_id}/pdf
Path Parameters
process_id string
[Required]
The ID of the generated and finished process that it’s required to be download as a pdf

Get Result

Allows you to retrieve the current status and details of a process. The status begins as pending and updates to either success or failure when the process completes.

  • Pending: The process is still ongoing.
  • Success: All steps in the process have been successfully completed. If the flow includes validators, all validation_status values must also be successful.
  • Failure: Occurs due to an internal error, timeout, or if the process is declined or expired.

Here’s a comprehensive list of reasons why a process or validation might be declined or expired, as recorded in the declined_reason and expired_reason fields:

If a process includes validators and the identity process times out because a validation did not complete, but all inputs have been uploaded, the system grants an additional 5 minutes to receive a validation response with the final status. This behavior occurs up to 3 times.

On the final attempt to retrieve the validation response, if the validation remains in the pending status, the identity process status will update to failure, with failure_status set to expired.

If a process includes the attributes override_status and override_status_history, it means the final status was modified by an authorized user. In this case, use the override_status attribute instead of status to determine the final status of the process. The override_status_history attribute will contain the history of changes made to the status.

get /v1/processes/{process_id}/result
Path Parameters
process_id string
[Required]
The ID of the process for which results are being retrieved.

Read Variables

Retrieves all the variables associated with the specified identity process, including their names and current values.
Response
get /v1/processes/{process_id}/variables
Path Parameters
process_id string
[Required]
The ID of the process from which to retrieve the variables.

Delete Identity

This API endpoint permanently removes an identity process, typically used for legal requests to delete customer data, granted the necessary permissions. Note: This action is definitive, so there is no way to reverse it.
Response
delete /v1/processes/{process_id}

Customers

Customers is a centralized solution that allows you to visualize and analyze the data generated by the transactions made by your users along different business funnels.

List Customers

This API endpoint allows retrieving the current status and general information of all customers associated with an account.
Query Parameters
search string
[Optional]
Filter the list of customers by document-id, email, name and phone number
start_key string
[Optional]
Start key value for the pagination.

Get Customer

This API endpoint allows retrieving the details of the customer identified by the provided ID.
get /v1/customers/{customer_id}
Path Parameters
customer_id string
[Required]
The customer ID is an automatically generated ID and is unique for each customer

List Customers Transactions

List customer transactions endpoint allows you to consult the detailed information of the transactions associated with a customer.
get /v1/customers/{customer_id}/transactions
Path Parameters
customer_id string
[Required]
The customer ID is an automatically generated ID and is unique for each customer
Query Parameters
source string
[Optional]
Allowed: check | process | validation | engagement-chat

Product that originated the transaction.
start_key string
[Optional]
Start key value for the pagination.

Read Customer Transaction

Read customer transaction endpoint allows you to consult the detailed information of a transaction associated with a customer.
get /v1/customers/{customer_id}/transactions/{transaction_id}
Path Parameters
customer_id string
[Required]
The customer ID is an automatically generated ID and is unique for each customer
transaction_id string
[Required]
The transaction ID is the unique identifier of the transaction.

Main Validator Suite API

NOTE: Truora provides a Postman collection online that includes the necessary tools to simplify the testing process.

Welcome to the Truora Validators Suite RESTful API Reference. If you haven’t already, we strongly advise you to check out our Validators API Documentation.

Here, you’ll find detailed technical information about our Validators API endpoints, including parameters, request and response formats, error codes, and supported methods for seamless integration.

The Validators Suite supports various use cases, such as document validation, phone and email verification, facial recognition, and more.

A validation process may include some or all of the following steps, depending on the validator:

  • Create Enrollment: Required to associate user data for validators requiring prior information, such as face, email, and phone.

  • Create Validation: Required for all validators; you must specify the validator type and relevant validation parameters.

  • Perform Validation: Executes asynchronous validations, such as email or phone, by verifying tokens received by the user.

  • Get Validation: Retrieves the final status, results, and details of any validation.

Please keep in mind that in our validation processes, the Account ID serves as a unique user identifier, allowing you to track the validations performed. It is important to generate a distinct identifier for each user undergoing validation to prevent data overlap between users and ensure proper monitoring for each one.

For conceptual overviews, implementation guides for each validator, and additional resources to enhance your integration experience, please visit our Validators API Documentation.

Authentication

To access Truora’s services and perform API calls securely, you need to authenticate your requests. This is done by including a specific authentication token, known as the โ€Truora-API-Keyโ€ in the header of your requests.

By providing this key in your API requests, you establish a secure and authorized connection, enabling seamless interaction with Truora’s services.

  • If you haven’t already, sign up for a free account here before generating your Truora-API-Key.
  • Learn how to generate your Truora-API-Key here.
Base URL

https://api.validations.truora.com

Accounts

Validation accounts simplify user identification across multiple Truora validators, enabling a single user to undergo various validation methods using the same account. For better user tracking, it is recommended to create custom-named validation accounts and use them during the validation or enrollment processes; otherwise , if a custom account_id is not specified during these processes, validators will automatically assign a random alphanumeric name.

Create Validation Account

Creates a validation account with options to include details such as name, document, email, phone, social media usernames, and other personal identifiers. This account provides a convenient way to track validations linked to a specific user.
Request
Request Body *application/x-www-form-urlencoded
document_issue_date string

Issue date of the person’s document, formatted in RFC3339 (e.g., 2000-05-24).

document_number string

Document number of the person associated with the account.

email string

Email address of the person associated with the account.

facebook_user string

Facebook username of the person associated with the account.

last_name string

Last name of the person associated with the account.

phone_number string

Phone number of the person associated with the account.

account_id string

Customized ID for the validation account being created. Only account IDs matching the pattern [a-zA-Z0-9_.-]+ are supported. If omitted, a random alphanumeric account ID is automatically created.

document_type enum
Allowed: national-id | identity-card | foreign-id | passport

Type of document for the person associated with the account.

first_name string

First name of the person associated with the account.

twitter_user string

X (formerly Twitter) username of the person associated with the account.

country string

Country where the person associated with the account is located, specified in ISO 3166 Alpha-2 format (e.g., CO for Colombia). See the full list of ISO Country Codes.

post /v1/accounts

Create Validation for an Account

Creates a new validation for the specified account_id.

Note: Ensure you have the account_id from previous steps. If an enrollment has already been created, it is not necessary to create a new one for each validation.

Request
Request Body *application/x-www-form-urlencoded
user_authorized boolean
[Required]

This indicates that you have the authorization of the person to be verified. This is mandatory in order to comply with data protection laws. Value must be set to true in order to perform the validation.

type enum
[Required]
Allowed: document-validation | face-recognition | email-verification | phone-verification | face-search

Indicates the type of validation to be performed.

account_id string
[Required]

Account ID linked to the validation.
For document-validation, an account ID is automatically created if omitted; otherwise, the custom account ID provided is used.
For other validations, use the same account ID from the enrollment process.
The account ID helps trace validations linked to the account. Only account IDs matching the pattern [a-zA-Z0-9_.-]+ are supported. Learn more at Create an Account ID.

document_type enum
Allowed: national-id | foreign-id | driver-license | passport | identity-card | rut | ppt | invoice | picture-id | record | cnh

[Required for document-validation] Set this value to the type of document been validated. For ppt please ask sales team.

Refer to Supported Document Types for a complete reference of supported document types, applicable countries and document front/reverse picture requirements.

verify_channel enum
Allowed: sms | call | whatsapp

[Required for phone-verification] Indicates the channel used to perform the verification. Some problems may occur when receiving the SMS due to external protocols of the mobile service providers, so we recommend giving an additional option to the users.

If you set whatsapp as the verify_channel value, you must have your own WABA line and Activate it. Then, create your Outbound message of type OTP and Contact Support to provide your Outbound ID for inclusion in your process.

minimum_precision enum
Allowed: very_high | high | medium | low

[Required for speech_match subvalidation] Minimum precision that the audio transcription obtained from the video selfie should have with the speech_token.

phone_type enum
Allowed: home | office | recover

[Required for phone-verification] Specifies the label of the phone number to be associated with the validation account upon successful validation. The phone type must have already been enrolled.

threshold number

Determines the required similarity between the provided picture and video or selfie to pass the face-recognition validation, ranging from 0 to 1. By default, the threshold is set to 0.65.

check_manual_review_availability boolean

Evaluates the availability for manual review according to the review schedule. If unavailable, the manual review will be skipped without affecting the validation status, and the manual review status will be marked as unavailable.

custom_type string

For document-validation, when specified, indicates the name of the Custom Type check to be used when a background check linked to this validation is desired. Keep in mind that the Custom Type check must already exist.

custom_input string

Optional external identifier stored in the database along with the main structure. Used for reference purposes only, without affecting processing or logic. (Maximum length: 128 characters).

subvalidations enum
Allowed: passive_liveness | similarity | speech_match

Indicates which subvalidations you want to perform during the face-recognition validation execution. If omitted, only similarity will be used. You can select more than one.

language enum
Allowed: es | en

For email-verification, specifies the language of the email that the final user receives.

phone_locale enum
Allowed: en | es | pt-BR

[Required for phone-verification] Language used to perform the validation via the selected verification channel.

retry_of_id string

[Required if you have active retries] Refers to the validation_id of the failed validation. Remember that it is also necessary to send the same account ID (even if it is the automatically generated one) of the failed validation.
Note: When type is face-recognition, only available if passive liveness is enabled.

timeout integer

The time, in seconds, users will have to complete the validation. If omitted, the timeout from the client’s config will be used.

  • Default: 300 (5 minutes) for all validators.
  • Max: 600 (10 minutes) for phone-verification and email-verification;
    21600 (6 hours) for document-validation, face-recognition and face-search.

country string

[Required for document-validation] Set the country of the document being validated. Use ALL when document_type is set to passport.
For BR,CR, please ask sales team.

  • Allowed: CO | CL | MX | PE | BR | CR | ALL

[Required for face-search] Country of the face to be searched in reported lists (TruFace).
Use ALL when using TruFace (face-search) as a Face Validation compliment.

  • Allowed: ALL | BR | CL | CO | CR | EC | MX | PE

post /v1/accounts/{account_id}/validations
Path Parameters
account_id string
[Required]
The account ID associated with the validation.

List Validation Accounts

Retrieves all validation accounts created under your client account, with optional pagination using the start_key query parameter. The response includes a list of each validation account and its details.
Response
get /v1/accounts
Path Parameters
start_key string
[Required]
Start key value for the pagination.

Get Validation Account

Retrieves details of the specified validation account ID. This account represents an individual user within the validation system.
Response
get /v1/accounts/{account_id}
Path Parameters
account_id string
[Required]
ID of the account to be retrieved.

Get Enrollments by Account

Retrieves all enrollments linked to a specific account_id. Each enrollment object includes its status and other relevant details. Enrollment status begins as pending and can ultimately result in either success or failure.

For more information about declined enrollment reasons, please refer to the Declined Reasons Guide.

Response
get /v1/accounts/{account_id}/enrollments
Path Parameters
account_id string
[Required]
The account ID for which the enrollments will be retrieved.

Get Account Validations

Retrieves all validations linked to a specific account_id. Each validation object includes its validation status, expired reason, failure reason and other relevant details. Validation status begins as pending and can ultimately result in either success or failure.

For more information on failure reasons, please refer to the following guides:

Path Parameters
account_id string
[Required]
The account ID linked with the validations.

Get Validation from Account

Retrieves the detailed information of a specific validation using an account_id and validation_id. This object is useful for understanding the exact status of the validation process. You can retrieve the current status and results of a validation, where the validation_status begins as pending and can either be success or failure upon completion.

To obtain details such as the inputs or uploaded media for the validation, you can include the query parameter show_details with the value of true.

To learn more about the reasons for failure, please refer to the following guides:

get /v1/accounts/{account_id}/validations/{validation_id}
Path Parameters
account_id string
[Required]
Unique identifier of the account associated with the validation.
validation_id string
[Required]
Unique identifier of the validation.
Query Parameters
show_details boolean
[Optional]
If set to true, retrieves additional validation details, including links to user-uploaded files that remain valid for 15 minutes.

Enrollments

The enrollment step is crucial in our system, as it connects an account with a specific validation type. This process allows you to register a user once and perform multiple validations seamlessly. The required fields for an enrollment vary depending on the validation type. Note that enrollment is mandatory for all validators except document validation.

Create Enrollment

This is the first step in validation processes like Face Search, Face, Phone, and Email validation. It requires the submission of necessary images or base information. During enrollment, essential materials, such as photographs or other relevant data, are collected to serve as the basis for user verification. It is important to emphasize that the actual validation will take place in later steps, using the information gathered during this stage. This step is crucial to ensure the system has all the necessary elements to perform an accurate and effective evaluation in subsequent stages.
Request
Request Body *application/x-www-form-urlencoded
type enum
[Required]
Allowed: face-recognition | email-verification | phone-verification | face-search

Indicates the type of validation to be performed along with this enrollment.

user_authorized boolean
[Required]

This indicates that you have the authorization of the person to be enrolled. This is mandatory in order to comply with data protection laws. Value must be set to true in order to perform the enrollment.

confirmation enum
Allowed: none

Only available for face-recognition validations. Used to specify the creation of enrollment that does not require an identity validation to complete. Set as none to skip the required validation. If omitted, the enrollment will require the normal validation process, and the enrollment status will remain pending until successfully validated.

Note: To use the confirmation parameter your company’s account must be authorized. To request authorization, please contact our Support Team. This authorization will affect only your Truora-API-Keys created after the approval.

email string

[Required for email-verification] Email to be associated with the user account.

phone_number string

[Required for phone-verification] Phone number to be associated with the validation account on successful validation. Must include the country code (e.g., +57300XXXXXXX).

phone_type enum
Allowed: home | office | recover

[Required for phone-verification] Specifies the label of the phone number to be associated with the validation account upon successful validation. You can associate up to three phone numbers with a user account. To do this, you must create a new enrollment by choosing a different phone_type each time.

account_id string

Account ID linked to the enrollment.
An account ID is automatically created if omitted; otherwise, the custom account ID provided is used.
The account ID helps trace enrollments/validations linked to the account. Only account IDs matching the pattern [a-zA-Z0-9_.-]+ are supported. Learn more at Create an Account ID.

country string

[Optional* for phone-verification] Origin country of the person to be validated. *Required if it was not provided during account creation.

  • Allowed: CO | CL | MX | BR | VE | PE | EC | AR | US

[Required for face-search] Country of the reported face. Use ALL when using TruFace (face-search) as a Face Validation compliment.

  • Allowed: ALL | BR | CL | CO | CR | EC | MX | PE

fraud_reason enum
Allowed: manipulated_document | manipulated_photo | non_payment | criminal_records_in_company | fraudster

[Required for face-search] Indicates the reason to block a face. Set one of the following:

  • manipulated_document: Indicates that this person is known to use manipulated documents to pass identity validations.

  • manipulated_photo: Indicates that this person is known to manipulate photos to pass identity validations.

  • non_payment: Indicates that this person has incomplete payments and refuses to pay.

  • criminal_records_in_company: Indicates that this person has some sort of criminal history with your company, or an ally.

  • fraudster: Indicates you know this person to be a fraudster for reasons different from the above.

Query Parameters
account_id string
[Optional]
Validation account ID. If left empty, a new validation account will be created

Get Enrollments by Account

Retrieves all enrollments linked to a specific account_id. Each enrollment object includes its status and other relevant details. Enrollment status begins as pending and can ultimately result in either success or failure.

For more information about declined enrollment reasons, please refer to the Declined Reasons Guide.

Response
get /v1/accounts/{account_id}/enrollments
Path Parameters
account_id string
[Required]
The account ID for which the enrollments will be retrieved.

Get Enrollment

Allows you to search for an enrollment to verify its progress. Using this step is optional. The enrollment status begins as pending and can ultimately result in either success or failure.

For more information about declined enrollment reasons, please refer to the Declined Reasons Guide.

Response
get /v1/enrollments/{enrollment_id}
Path Parameters
enrollment_id string
[Required]
Enrollment ID to search.

Delete enrollment

Deletes an enrollment. If this endpoint is executed on an enrollment ID, the enrollment will be removed from the client’s account.
delete /v1/enrollments/{enrollment_id}
Path Parameters
enrollment_id string
[Required]
Enrollment ID to be removed from the client’s account.

Validations

Validations is your tool for managing various validators such as document validation, face recognition, face search (TruFace), email verification, and phone verification. This API handles all the necessary logic for these validators, offering a unified service to manage multiple validators efficiently.

Perform sync validation

Performs a sync validation for the specified validation_id within the specified account_id. Examples of these validators include phone and email. Not applicable to async validators such as document or face.

If a previous validation attempt was unsuccessful, this will count as a retry, which could occur due to errors such as a typo in the token or other mistakes.
Request
Request Body *application/x-www-form-urlencoded
token string
[Required]

The validation code sent to the user’s email or phone (via SMS, call, or WhatsApp) for verification.

type enum
[Required]
Allowed: email-verification | phone-verification

Indicates the type of validation to be performed.

Response
post /v1/accounts/{account_id}/validations/{validation_id}
Path Parameters
account_id string
[Required]
The account ID associated with the validation.
validation_id string
[Required]
ID of the validation to be performed.

Create Validation

Creates a new validation for the specified validation type. This process allows your company to confirm that the user’s identity matches the provided information (such as documents, images, videos, or codes like OTP), ensuring accuracy and security in the verification process, which is crucial for legal responsibilities.
Request
Request Body *application/x-www-form-urlencoded
account_id string
[Required]

Account ID linked to the validation.
For document-validation, an account ID is automatically created if omitted; otherwise, the custom account ID provided is used.
For other validations, use the same account ID from the enrollment process.
The account ID helps trace validations linked to the account. Only account IDs matching the pattern [a-zA-Z0-9_.-]+ are supported. Learn more at Create an Account ID.

type enum
[Required]
Allowed: document-validation | face-recognition | email-verification | phone-verification | face-search

Indicates the type of validation to be performed.

user_authorized boolean
[Required]

This indicates that you have the authorization of the person to be verified. This is mandatory in order to comply with data protection laws. Value must be set to true in order to perform the validation.

threshold number

Determines the required similarity between the provided picture and video or selfie to pass the face-recognition validation, ranging from 0 to 1. By default, the threshold is set to 0.65.

custom_input string

Optional external identifier stored in the database along with the main structure. Used for reference purposes only, without affecting processing or logic. (Maximum length: 128 characters).

document_type enum
Allowed: national-id | foreign-id | driver-license | passport | identity-card | rut | ppt | invoice | picture-id | record | cnh

[Required for document-validation] Set this value to the type of document been validated. For ppt please ask sales team.

Refer to Supported Document Types for a complete reference of supported document types, applicable countries and document front/reverse picture requirements.

minimum_precision enum
Allowed: very_high | high | medium | low

[Required for speech_match subvalidation] Minimum precision that the audio transcription obtained from the video selfie should have with the speech_token.

phone_type enum
Allowed: home | office | recover

[Required for phone-verification] Specifies the label of the phone number to be associated with the validation account upon successful validation. The phone type must have already been enrolled.

check_manual_review_availability boolean

Evaluates the availability for manual review according to the review schedule. If unavailable, the manual review will be skipped without affecting the validation status, and the manual review status will be marked as unavailable.

subvalidations enum
Allowed: passive_liveness | similarity | speech_match

Indicates which subvalidations you want to perform during the face-recognition validation execution. If omitted, only similarity will be used. You can select more than one.

custom_type string

For document-validation, when specified, indicates the name of the Custom Type check to be used when a background check linked to this validation is desired. Keep in mind that the Custom Type check must already exist.

verify_channel enum
Allowed: sms | call | whatsapp

[Required for phone-verification] Indicates the channel used to perform the verification. Some problems may occur when receiving the SMS due to external protocols of the mobile service providers, so we recommend giving an additional option to the users.

If you set whatsapp as the verify_channel value, you must have your own WABA line and Activate it. Then, create your Outbound message of type OTP and Contact Support to provide your Outbound ID for inclusion in your process.

country string

[Required for document-validation] Set the country of the document being validated. Use ALL when document_type is set to passport.
For BR,CR, please ask sales team.

  • Allowed: CO | CL | MX | PE | BR | CR | ALL

[Required for face-search] Country of the face to be searched in reported lists (TruFace).
Use ALL when using TruFace (face-search) as a Face Validation compliment.

  • Allowed: ALL | BR | CL | CO | CR | EC | MX | PE

language enum
Allowed: es | en

For email-verification, specifies the language of the email that the final user receives.

phone_locale enum
Allowed: en | es | pt-BR

[Required for phone-verification] Language used to perform the validation via the selected verification channel.

retry_of_id string

[Required if you have active retries] Refers to the validation_id of the failed validation. Remember that it is also necessary to send the same account ID (even if it is the automatically generated one) of the failed validation.
Note: When type is face-recognition, only available if passive liveness is enabled.

timeout integer

The time, in seconds, users will have to complete the validation. If omitted, the timeout from the client’s config will be used.

  • Default: 300 (5 minutes) for all validators.
  • Max: 600 (10 minutes) for phone-verification and email-verification;
    21600 (6 hours) for document-validation, face-recognition and face-search.

post /v1/validations

Perform validation

Perform validation for the specified validation_id. If a previous validation attempt was unsuccessful, this will count as a retry, which could occur due to errors such as a typo in the token or other mistakes.
Request
Request Body *application/x-www-form-urlencoded
type enum
[Required]
Allowed: email-verification | phone-verification

Indicates the type of validation to be performed.

token string
[Required]

The validation code sent to the user’s email or phone (via SMS, call, or WhatsApp) for verification.

Response
post /v1/validations/{validation_id}
Path Parameters
validation_id string
[Required]
ID of the validation to be performed.

File Upload

Allows the upload of binary files, such as images or videos, needed for document validation or person verification. To upload a file, make a PUT request to the URL provided during the validation or enrollment process.
Request
Request Body *
file binary
[Required]

Accepts binary files such as images, videos, or other types of files, encoded in Base64 format. This input is used for uploading media or documents required in identity verification processes.

Response
put {file_upload_url}

Get Account Validations

Retrieves all validations linked to a specific account_id. Each validation object includes its validation status, expired reason, failure reason and other relevant details. Validation status begins as pending and can ultimately result in either success or failure.

For more information on failure reasons, please refer to the following guides:

Path Parameters
account_id string
[Required]
The account ID linked with the validations.

Get Validation from Account

Retrieves the detailed information of a specific validation using an account_id and validation_id. This object is useful for understanding the exact status of the validation process. You can retrieve the current status and results of a validation, where the validation_status begins as pending and can either be success or failure upon completion.

To obtain details such as the inputs or uploaded media for the validation, you can include the query parameter show_details with the value of true.

To learn more about the reasons for failure, please refer to the following guides:

get /v1/accounts/{account_id}/validations/{validation_id}
Path Parameters
account_id string
[Required]
Unique identifier of the account associated with the validation.
validation_id string
[Required]
Unique identifier of the validation.
Query Parameters
show_details boolean
[Optional]
If set to true, retrieves additional validation details, including links to user-uploaded files that remain valid for 15 minutes.

Get all user Validations

This endpoint allows you to list all validations associated with your users, enabling effective tracking of their current statuses. The returned object provides insights into the exact status of each validation process, where the validation_status begins as pending and can ultimately result in either success or failure.

To learn more about the reasons for failure, please refer to the following guides:

Get Validation

Returns a validation object given a validation_id. This object is useful for understanding the exact status of the validation process. You can retrieve the current status and results of a validation, where the validation_status begins as pending and can either be success or failure upon completion.

To obtain details such as the inputs or uploaded media for the validation, you can include the query parameter show_details with the value of true.

To learn more about the reasons for failure, please refer to the following guides:

get /v1/validations/{validation_id}
Path Parameters
validation_id string
[Required]
Unique identifier of the validation.
Query Parameters
show_details boolean
[Optional]
If set to true, retrieves additional validation details, including links to user-uploaded files that remain valid for 15 minutes.

Config

The Config Validators feature allows for customization of various parameters to improve the behavior of the validators. This is particularly valuable when you wish to set different decision parameters like thresholds, timeouts, manual review enabling, and more. Below are the parameters that are configurable across multiple validators.

  • timeout: The amount of time, in seconds, that users will have to perform the validation before it times out.

  • allowed_retries: The number of times the validation may be retried before failing.

  • retry_ttl: The time to live (TTL), in seconds, for creating a retry of any validation.

    ParametersDocument ValidatorFace ValidatorPhone ValidatorEmail Validator
    timeoutXXXX
    allowed_retriesXXXX
    retries_ttlXX--

Config by Validator Type

Each Validator has its own particularities and specific parameters (not listed in the table above) that you may modify to better suit your company’s needs. To learn about specific configurable parameters, default values, and special considerations, please visit the guide for the validator you want to configure:

NOTES:

  • The Config Validators parameters are global to your account and will affect all validations performed across it.

  • However, validations performed in a Flow will prioritize the configuration in the Validator Block of your flow. All other parameters, not configurable within the Flow Builder, will take the global configuration values. To learn about flows, please visit the Create your first flow guide from our Digital Identity documentation.

Update config

Allows updating the values of various parameters to improve the behavior of the validators, such as timeout, allowed retries, threshold, manual review, among other properties from our validators. For more datails about customizable parameters for each validator, please refer to the individual configuration guides:

Request
Request Body *application/x-www-form-urlencoded
validator enum
[Required]
Allowed: face-recognition | email-verification | phone-verification | document-validation

Validator to be configured.

include_face_search boolean

When set to true, adds face_search subvalidation to the face-recognition validation. This enables the system to check if the uploaded face is reported in Truface (face-search).

document_type enum
Allowed: national-id | foreign-id | driver-license | passport | identity-card | rut | ppt | invoice | picture-id | record | cnh

[Required if modifying a validation_method] The type of document for which the document-validation configuration will be updated. If omitted, all supported document types will be affected.

Note: Refer to Appendix 1 tables in the Document Validator Config guide for a list of supported Document Types by Country.

validation_method.image-analysis.status enum
Allowed: enabled | disabled

Checks for any alterations or edits in the image of the validated document in document-validation.

email_text_1 string

Custom text appearing before the verification code in the email-verification validator email. For details, language options and default values, see the Email Validator Config guide.

validation_method.photocopy-analysis.status enum
Allowed: enabled | disabled

Analyzes if the image used for document-validation is a photocopy of a document.

document_version enum
Allowed: mx_ine-c | mx_ine-d | mx_ine-e | mx_ife-f | mx_ife-g | mx_fm3 | co_national-id-2000 | co_national-id-2020 | co_foreign-id | co_ppt | passport

The version of the document_type for which the document-validation configuration will be updated. If omitted, all supported document versions will be affected.

Note: For a complete list of Allowed document versions available by country and document type, refer to the tables in Appendix 1: Supported Document Versions. Please contact our Support Team for further assistance.

email_text_2 string

Custom text appearing after the verification code in the email-verification validator email. For details, language options and default values, see the Email Validator Config guide.

country enum
Allowed: CO | CL | MX | PE | BR | ALL

Country for which the document-validation configuration will be updated.

email_subject string

Custom subject text in the email-verification validator email. For details, language options and default values, see the Email Validator Config guide.

email_title string

Custom main title text in the email-verification validator email. For details, language options and default values, see the Email Validator Config guide.

retry_ttl number

Available for document-validation and face-recognition.

The time to live (TTL), in seconds, for creating a retry of any validation.

  • For document-validation: The default value is 300 seconds (5 minutes), with a maximum of 1800 seconds (30 minutes) and a minimum of 1 second.

  • For face-recognition: The default and maximum value is 300 seconds (5 minutes), with a minimum of 1 second.

    Note: For face-recognition, retry feature is only available when passive liveness is enabled in the Face Validation process. For more information visit the Facial Recognition Methods guide.

validation_method.manual-review.status enum
Allowed: enabled | disabled

Determines whether manual review will be performed upon validation failure in document-validation.

For more information about manual review, please visit the Manual Review guide.

allowed_retries number

The number of times the validation may be retried before failing.

Note: For face-recognition, retry feature is only available when passive liveness is enabled in the Face Validation process. For more information visit the Facial Recognition Methods guide.

  • For document-validation: The default value is 0 retries, with a maximum of 3 retries.

  • For face-recognition: The default value is 0 retries, with a maximum of 2 retries.

  • For email-verification and phone-verification: The default value is 2 retries, with a maximum of 4 retries.

threshold number

Determines the required similarity, ranging from 0 to 1, between the provided picture and the video or selfie used to pass the face-recognition validation. By default, the threshold is set to 0.65.

timeout number

The time, in seconds, users will have to complete the validation.

  • Default: 300 (5 minutes) for all validators.
  • Max: 600 (10 minutes) for phone-verification and email-verification;
    21600 (6 hours) for document-validation and face-recognition.

use_manual_review boolean

Determines whether manual review will be performed upon face-recognition validation failure. You must contact Truora to activate this service. For more information about manual review, please visit the Manual Review guide.

validation_method.photo-of-photo.status enum
Allowed: enabled | disabled

Analyzes if the image used for validation is a photograph of a photograph of a document in document-validation.

custom_name string

Custom text within the OTP phone-verification messages, up to 30 characters. For details, language options and default values, see the Phone Validator Config guide.

support_email string

Custom support email address displayed at the bottom of the email-verification validator email. For details, language options and default values, see the Email Validator Config guide.

validation_method.data-consistency.status enum
Allowed: enabled | disabled

Analyzes the extracted data from the document for consistency in document-validation, such as date of birth and document number.

validation_method.government-database-validation.status enum
Allowed: enabled | disabled

Validates the extracted identification number against government databases in document-validation.

Response
put /v1/config

Get Config

Fetches the current configuration state for all validators associated with your account.

Note: Since the response includes configuration details for all validators linked to your account, please review the specific validator details youโ€™re interested in carefully.

Response
get /v1/config

Delete Config

Allows you to delete a validatorโ€™s configuration or a specific parameter (type) within the validatorโ€™s configuration. Deleting the configuration resets its values back to their defaults.

Note: If you omit the type parameter when sending the request, all configurations associated with the validator will be deleted, reverting all values to their default settings.
delete /v1/config
Query Parameters
type enum
[Optional]
If validator is document-validation:
Allowed: timeout | allowed_retries | use_manual_review | document_config | retry_ttl

If validator is face-recognition:
Allowed: threshold | timeout | enrollment_timeout | use_manual_review | include_face_search

If validator is email-verification:
Allowed: timeout | allowed_retries | email_subject | email_title | email_text_1 | email_text_2 | support_email

If validator is phone-verification:
Allowed: allowed_retries | timeout | custom_name

Configuration type to be reset. If provided, the validator reset will only affect the selected configuration; otherwise, all configurations will be reset.

Note : For document-validation, setting the type field to document_config will reset any Document Version Config to their default values.
validator enum
[Required]
Allowed: document-validation | face-recognition | email-verification | phone-verification

Name of the validator’s config to be deleted.

Status

Status lets you check the current state of our services in real time.

Get status

Checks the current availability of the validations API. If this endpoint fails, it means the validations api is down and should contact support.
Response
get /v1/status