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*
payment_date (Santiago only)
driver_license (Santiago only)
foreign_id*
first_name*
last_name*
date_of_birth*
native_country*
license_plate*
payment_date (Santiago only)
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
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]

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

Document country

type string
[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

escrow string

Colombian escrow

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.

professional_card string

Professional ID card

phone_number string

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

region string
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

diplomatic_id string

Diplomatic ID

driver_license string

Driver’s license number

issue_number string

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

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

Country of birth. Required if native_national_id is provided

passport string

Person passport

certificate_folio string

Folio for Chilean certificate search. Chile only

license_plate string

Vehicle license plate

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

vehicle_id string

Vehicle NIV number

owner_document_type string

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

pep string

ID for Venezuelans working in Colombia

ptp string

ID for Venezuelans working in Peru

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

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

national_id string

National ID

company_name string

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

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

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

payment_date string

Payment day of a vehicle circulation permit (Chile only)

tax_id string

Company ID used for tax payments

imei string

15-digit IMEI to be validated

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

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

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รบ

report_id string

Report ID the background check will be inserted into

birth_certificate string

Person birth certificate

foreign_id string

Person foreign ID

owner_document_id string

ID of the vehicle owner

verification_code string

Verification code registered for criminal records in Peru and Chile

/v1/checks

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

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
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
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
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.
get
/v1/health
Query Parameters
country string
[Optional]
Country code in uppercase ISO 3166 format (e.g., CO for Colombia).
unixTimestampSeconds string
[Optional]
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 string
[Optional]
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.
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 string
[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_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_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_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_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_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_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_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_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_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_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_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

post
/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.
get
/v1/config
Query Parameters
start_key string
[Optional]
Start key value for the pagination.

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
country string
[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

type string
[Required]

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

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

put
/v1/config

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.

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

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
check_id string

Background checks to be processed recurrently

frequency string

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

status string

Indicates whether the background checks must be processed recurrently (enabled | disabled)

post
/v1/continuous-checks

List Continuous Checks

Lists all continuous checks created in the given account. This method returns the ’next’ attribute to paginate for the next results
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
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
get
/v1/continuous-checks/{continuous_check_id}/history
Path Parameters
continuous_check_id string
[Required]
Unique ID assigned after calling CreateContinuousCheck.

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
frequency string

Time between background checks

status string
Allowed: enabled | disabled

Indicates whether the background checks must be processed recurrently

version string
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.

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

Reports

The Reports API allows you to group checks into a single report and download the results as a PDF or CSV file. Additionally, it enables you to upload a batch of background checks for processing, and get a comprehensive report later.

Create report

Creates a new report. The report object allows the grouping of multiple checks. Later all checks under the same report object can be downloaded as a PDF or CSV file
Request
Request Body *application/x-www-form-urlencoded
name string
[Required]

Report name

Batch upload

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. The following templates must be used to upload the checks data

Person: Chile, Colombia, Mexico, Peru, Costa Rica, Brazil

Vehicle: Chile, Colombia, Mexico, Peru

Company Colombia, Mexico, Brazil

Keep in mind that we currently do not support batch uploads for custom check types. Background checks created by batch upload are processed with low priority.

Request
Request Body *application/x-www-form-urlencoded
file array

Uploaded file name

post
/v1/reports/{report_id}/upload
Path Parameters
report_id string
[Required]
Unique identifier of the report.

List all reports

Returns a list of reports for the given account. The reports can be filtered by username using the query parameter
Query Parameters
start_key string
[Optional]
Start value for pagination.
username string
[Optional]
Filter reports created by the specified username.

Get report

Returns a report of a given report_ID. The report object contains information such as the number of created checks and failed checks.
get
/v1/reports/{report_id}
Path Parameters
report_id string
[Required]
Unique identifier of the report.

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

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 string
[Required]
Allowed: backend | web

API key type

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

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

country string
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

grant string
Allowed: digital-identity | signals

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

flow_id string

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

key_name string

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

api_key_version string

API key version. Version 0 is used by default

billing_hub string

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

document_type string
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

post
/v1/api-keys

Get Result

This API endpoint allows you to retrieve the current state and information of a process. The status starts in pending. When the process finishes, it can either be success or failure.

  • Pending means the process is still ongoing

  • Success occurs when all the steps in the process are successful, and if the flow has validators, all validation_status are successful.

  • Failure can occur due to an internal error, a timeout, or if the process is declined or expired.

  • Here’s a complete reference of the reasons why a process can expire. These reasons are set in the declined_reason field.

Reason Explanation
not_used When the user leaves at the beginning of the process without activating any validation
no_document_media_uploaded When a process expires because the user did not upload the document files for the document validation step.
no_face_media_uploaded When a process expires because the user did not upload the the selfie or video for the face validation step.
no_media_uploaded When a process expires because the user did not upload the required file for the step.
process_started_late When the process was started 3 minutes before expiring. Most likely the client did not had enough time to finish the flow.
not_answered_question When a process expires because the user did not answer a question in the WhatsApp conversation.
manual_review_not_performed When the process expires and the manual review is not completed.
abandoned_without_using_retries When the user abandons the process after making one or more validation attempts, but does not use all retries.
validation_not_finished When the process expires with some validation pending.
validation_expired When we have a validation within the flow that has expired and the process also expires.
user_process_postponed Indicates when the process finished because user chooses to postpone a process.
geolocation_denied Indicates when the process finished because user declines permission for geolocation services.
vpn_detected Indicates when the process finished because the system detects the use of a Virtual Private Network (VPN) by the user.
no_face_detected When a face can’t be detected in a document.

If a process has any validators and the identity process times out due to some validation not finishing, but all inputs have been uploaded, the process will have an additional 5 minutes to receive the validation response with the final status. This behavior will occur up to 3 times.

In the final attempt to get the last validation response with the final status, if the validation remains with a pending status, he identity process status will be failure and failure_status will be expired.

If a process has the attributes override_status and override_status_history, it means that the final status of the process was modified by an authorized user.

Therefore, the new attribute to know the final status of a process should be override_status instead of status and, the override_status_history attribute will contain the history of changes made to the status.

get
/v1/processes/{process_id}/result

WhatsApp

WhatsApp can be used as a channel to reach users through flows. Using WhatsApp Business Account (WABA), you would be able to send and receive messages through the WhatsApp Business API for your business processes, interactions with your users or create validation processes, accounts as a document, document + face, email, phone number, electronic signature, and background. There are two different types of messages that can be used through WhatsApp Business, incoming messages (inbound) and outgoing messages (outbound).

Create Outbound Messages

Creates an Outbound Message that allows to send messages to users as a first interaction. Outbound messages need to be approved before they can be used.
Request
Request Body *application/x-www-form-urlencoded
continue_process_message string

Required If is_notification is set to False, it will be the content for the continue option in the outbound message.

is_notification boolean

[Required] Indicates if the Outbound Message is a notification (true) or will start a flow (false).

outbound_name string

[Required] Contains a text specifying the name of the outbound.

waba_phone_number string

[Required] WABA in which this outbound template will be added.

cancel_process_message string

Required If is_notification is set False, it will be the content for the cancel option in the outbound message.

category string
Allowed: TRANSACTIONAL | MARKETING | OTP

[Required] Enum defined by WhatsApp of the category for the outbound. OTP is for One Time Passwords, MARKETING is for marketing campaigns and TRANSACTIONAL is for any other topic of the Outbound.

content string

[Required] The message to be sent to the user.

Example: โ€œHello, ยฟare you ready to start the process?โ€

If the message will include variables, they should be specified between double brackets like {{.<variable_name>}}.

Example: โ€œHello {{.name}}, ยฟare you ready to start the process?โ€

language_code string
Allowed: es | en

[Required] Code of the language the message is in.

media_url string

Required if the outbound type is not text.

template_type string
Allowed: TEXT | VIDEO | IMAGE | DOCUMENT

[Required] Type of the outbound message.

supported content Image: image/jpeg, image/png maximum size 5mb. Video: video/mp4, video/3gpp maximum size 16mb. Document: any valid MIME type maximum size 100mb.

var.<variable_name> string

Required if the outbound message has variables like hello {{.name}} {{.lastname}}. The value must be an example of the variable.

It is important to send as many key-value pairs as variables present in the message.

Example: for the first variable var.name: Jhon and for the second variable var.lastname: Doe.

Create WABA subscription

This endpoint allows users to create a WhatsApp Business Account (WABA) subscription. Users can initiate and configure the subscription process by providing the necessary information to establish a connection or subscription with a WABA, facilitating communication and interaction with WhatsApp users.
/v1/whatsapp/waba-subscription

Send Outbound Message

Sends an Outbound Message as a first interaction to an user. The Outbound Message status needs to be APPROVED before it can be sent.
Request
Request Body *application/x-www-form-urlencoded
account_id string

This field is used as a unique identifier for your user in the Truora’ system. If you send it, outbound messages sent to each user will be linked through this. To learn more about Account IDs, please visit the Create Account to link processes by user guide.

country_code string

[Required] Country code for the user phone number. Example: +57

flow_id string

[Required] If the Outbound Message is_notification field is false. Contains the FlowID of the flow that will start when the Outbound message is accepted by the user.

Example: IPF123

outbound_id string

[Required] ID of an approved Outbound Message. Example: OTB123

phone_number string

[Required] Phone number without the country code of the user that will receive the message. Example: 0001234567

user_authorized boolean

[Required] Must be true for starting the conversation.

User has authorized to be contacted through WhatsApp.

var.<variable_name> string

[Required] If the outbound message has variables like hello {{.name}} {{.lastname}}. The value must be the desired value of the variable.

It is important to send as many key-value pairs as variables present in the message.

Example: for the first variable var.name: Roger and for the second variable var.lastname: Federer.

Identity Back

Allows the user to undo a verification step, and also allows the user to retry a validation.
post
/v1/processes/{process_id}/back

Create Inbound Flows

Set up inbound message that triggers a specific flow. All inputs are required for inbound creation.

To finish the inbound creation process, you must access the following link, by adding the PhoneNumber and the activating message. when you need to put a space in the activation message write this code %20

https://api.whatsapp.com/send/?phone=PhoneNumber&text=activatingmessage

Example https://api.whatsapp.com/send/?phone=57317770000&text=Hola%20Truora

Request
Request Body *application/x-www-form-urlencoded
flow_id string

Identifier of the Flow previously created.

inbound_message string

Unique message the users will be sending to the business WhatsApp (WABA) in order to begin the Flow.

waba_phone_number string

Phone number of the WABA that interacts with the users. Must include the country code. Example 14080001111.

Update Inbound Flow

Allows updating an inbound flow.

Note: Do not forget that if you already have a whatsapp link created and you update it, you must generate a new link.

Request
Request Body *application/x-www-form-urlencoded
flow_id string

Identifier of the Flow previously created.

inbound_message string

Unique message the users will be sending to the business WhatsApp (WABA) in order to begin the Flow.

waba_phone_number string

Phone number of the WABA that interacts with the users. Must include the country code. Example 14080001111.

Provider Statuses

This endpoint receives and processes the status of a WhatsApp message from a WhatsApp provider. It enables system to handle and manage the status information associated with WhatsApp messages, facilitating effective monitoring and processing of message delivery and engagement.
post
/v1/whatsapp/{provider}/statuses

Create Identity

This API endpoint enables the creation of digital identity processes for user to start a verification process.
post
/v1/processes

Cancell Campaign

This endpoint offers the capability to cancel an active campaign. Users can initiate the cancellation process for a specific campaign, preventing further message deliveries and interactions. It provides a means to swiftly and effectively halt campaign activities when necessary.
/v1/whatsapp/campaigns/{campaign_id}/cancel

Get Process Validations

This API endpoint allows you to retrieve the current state and information of the process validations.
get
/v1/processes/{process_id}/validations

List Inbound Flows

This endpoint allows users to retrieve a list of created inbound flows. Users can access information about each inbound flow.
get
/v1/whatsapp/inbounds
Query Parameters
start_key string
[Optional]
[Optional] start key value for pagination, if you want to go to the previous or next page.

Get Campaign

This endpoint provides the functionality to retrieve detailed information about a specific campaign. Users can access comprehensive data related to the campaign.
/v1/whatsapp/campaigns/{campaign_id}
Path Parameters
campaign_id string
[Optional]
Unique identifier for the campaign

List WABA Lines

This endpoint retrieves a list of WhatsApp Business (WABA) lines that have been assigned to a Truora account. It provides essential information about each WABA line, including line details, configuration settings, and associated data, allowing account holders to manage and monitor their WhatsApp Business lines efficiently.
get
/v1/whatsapp/lines

Get Outbound Message

This endpoint retrieves an outbound message. Users can use this endpoint to obtain details or content related to a specific outbound message.
/v1/whatsapp/outbounds/{outbound_id}
Path Parameters
outbound_id string
[Required]
outbound ID

Get Inbound Flow

This endpoint allows users to retrieve information about a previously created inbound. Users can access details and data related to a specific inbound.
/v1/whatsapp/inbounds/{inbound_flow_id}
Path Parameters
inbound_flow_id string
[Required]
Unique identifier of inbound flows

Get WABA Line

This endpoint provides the functionality to retrieve detailed information about a WhatsApp Business Account (WABA) line. Users can access essential data related to the WABA line’s configuration, contact information, messaging capabilities, and integration options, facilitating effective management and utilization of the WABA line.
/v1/whatsapp/lines/{waba_line}

Get Result

This API endpoint allows you to retrieve the current state and information of a process. The status starts in pending. When the process finishes, it can either be success or failure.

  • Pending means the process is still ongoing

  • Success occurs when all the steps in the process are successful, and if the flow has validators, all validation_status are successful.

  • Failure can occur due to an internal error, a timeout, or if the process is declined or expired.

  • Here’s a complete reference of the reasons why a process can expire. These reasons are set in the declined_reason field.

Reason Explanation
not_used When the user leaves at the beginning of the process without activating any validation
no_document_media_uploaded When a process expires because the user did not upload the document files for the document validation step.
no_face_media_uploaded When a process expires because the user did not upload the the selfie or video for the face validation step.
no_media_uploaded When a process expires because the user did not upload the required file for the step.
process_started_late When the process was started 3 minutes before expiring. Most likely the client did not had enough time to finish the flow.
not_answered_question When a process expires because the user did not answer a question in the WhatsApp conversation.
manual_review_not_performed When the process expires and the manual review is not completed.
abandoned_without_using_retries When the user abandons the process after making one or more validation attempts, but does not use all retries.
validation_not_finished When the process expires with some validation pending.
validation_expired When we have a validation within the flow that has expired and the process also expires.
user_process_postponed Indicates when the process finished because user chooses to postpone a process.
geolocation_denied Indicates when the process finished because user declines permission for geolocation services.
vpn_detected Indicates when the process finished because the system detects the use of a Virtual Private Network (VPN) by the user.
no_face_detected When a face can’t be detected in a document.

If a process has any validators and the identity process times out due to some validation not finishing, but all inputs have been uploaded, the process will have an additional 5 minutes to receive the validation response with the final status. This behavior will occur up to 3 times.

In the final attempt to get the last validation response with the final status, if the validation remains with a pending status, he identity process status will be failure and failure_status will be expired.

If a process has the attributes override_status and override_status_history, it means that the final status of the process was modified by an authorized user.

Therefore, the new attribute to know the final status of a process should be override_status instead of status and, the override_status_history attribute will contain the history of changes made to the status.

get
/v1/processes/{process_id}/result

List Outbound Messages

This endpoint retrieves a list of outbound messages that have been created. Users can access this endpoint to view and review the outbound messages they have generated or sent, providing an overview of the created outbound messages within the system or application.
/v1/whatsapp/outbounds
Query Parameters
line string
[Required]
WhatsApp business account line (WABA). Do not forget that you must add the country code followed by the number. example: 1432567893

List Identity

This API endpoint allows to retrieve the current state and information of all identity processes.

If a process has the attributes override_status and override_status_history, it means that the final status of the process was modified by an authorized user.

Therefore, the new attribute to know the final status of a process should be override_status instead of status and, the override_status_history attribute will contain the history of changes made to the status.

get
/v1/processes

Read Identity

This API endpoint allows to retrieve the current state and information of an identity process.
get
/v1/processes/{process_id}

Update Outbound Message

Updates an Outbound Message that allows to send messages to users as a first interaction. Outbound messages need to be approved before they can be used.

Put WABA Line config

This endpoint provides the functionality to configure and customize the details of a WhatsApp Business Account (WABA) line. Users can modify various parameters and preferences to tailor the configuration of their WABA line according to their specific needs and preferences.
put
/v1/whatsapp/lines/{waba_line}/config
Path Parameters
default_flow_id string
[Optional]
The default_flow_id parameter is used to specify the ID of the default flow to be used in a WABA Line

Remove Inbound Flow

This endpoint allows users to remove inbound flows. Users can initiate the removal process for specific inbound flows, effectively eliminating them from the system. It provides a means to manage and clean up inbound flows when they are no longer needed or relevant.
/v1/whatsapp/inbounds/{inbound_flow_id}

Remove Outbound Message

This endpoint allows users to delete an outbound message. Users can initiate the removal process for a specific outbound message, effectively eliminating it from the system or application. It provides a means to manage and clean up outbound messages when they are no longer needed or relevant.
/v1/whatsapp/outbounds/{outbound_id}

Main Validator Suite API

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

Welcome to Truora Validators Suite API [RESTful API] reference.

Truora Validatior Suite API allows performing identity validations in a variety of ways.

Do not forget, the Account ID is a user identifier that allows you to track the validations made. It is important to generate a unique identifier for each user who performs any type of validation, in order to avoid the possibility of information being crossed between users and to guarantee adequate monitoring for each one of them.

Validation steps

Most validations are performed by following these three simple steps:

Enrollment must be used for validators except for documents. Check out our Guide on Validation steps to learn more.

Validation steps

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 offer an easy way to identify validator users. A single validation account can be used in as many validations as you see fit. In order to streamline the process, a validation account is automatically created on enrollment unless an existing account_id is provided. Use custom-named validation accounts in order to easily trace your validation usage since validation accounts are automatically named with a random combination of numbers and letters if a custom name is not provided.

Create validation account

Creates a new validation account. This validation account is used to easily keep track of the validations made by a specific user.
Request
Request Body *application/x-www-form-urlencoded
document_expedition_date string

Person document issue date. RFC3339 format

document_type string
Allowed: national-id | foreign-id | pep | passport

Person document type

facebook_user string

Person Facebook username

first_name string

Person first name

country string
Allowed: co | cl | mx | pe | do | sv | gt | br

Country where this person is located

document_number string

Person document number

email string

Person e-mail address

last_name string

Person last name

phone_number string

Person phone number

twitter_user string

Person Twitter username

post
/v1/accounts

List validation accounts

Returns all the validation accounts that have been created for the user. A validation account is useful to be able to keep track of all validations performed by a single user.
get
/v1/accounts

Get validation account

Returns the validation account identified by the ID provided. This validation account represents a single user on the validation system
get
/v1/accounts/{account_id}
Path Parameters
validation_account_id string
[Required]
Validation account ID

Get Enrollments by Account

Retrieve all enrollments associated with a specific account id. These enrollment objects include their status, and other information
get
/v1/accounts/{account_id}/enrollments

Config

The Config feature allows you to customize the behavior of your various validators. This is particularly valuable when you wish to set different decision thresholds, timeouts, enable manual reviews, and more

Get config

Fetch configuration current state.

Note: This method gets all the validators configuration state of the account.

/v1/config

Update config

Allows updating the timeout, threshold, manual review, retries and other properties for a specific validator. Additionally the following validators have unique properties you can configure:

Document validation

  • Country: The country of the document you want

  • Document type: The type of document for which the document validation configuration will be created.

  • Document version: The document version of the document type.

  • Validation methods: This is a group of validation methods to be applied to the document. To modify the properties of any of them in your request send the attribute validation_method.{{method}}.{{property}}, where {{method}} is the selected method you wish to change and {{property}} is the selected property to change.

    For example: validation_method.data-consistency.status: enabled.

For more information on available document versions and methods, please contact our Sales team.

Face recognition

  • Include Face Search: Boolean flag to include Truface (Search of input face in client and global face collections)

Merged configs

When a validation is executed, these parameters override a default config we have stored for any validation performed in Truora to make sure customers have all models up to date. For example:

Client ConfigDefault ConfigUsed Config (Client+Default)
Allowed Retries232
Timeout900 300900
Retries TTL300300
Request
Request Body *application/x-www-form-urlencoded
country string
Allowed: ALL | CO | CL | MX | BR | PE

Country for which the document validation configuration will be created

include_face_search boolean

Include face search subvalidation in face-recognition validator execution

timeout number

Time in seconds users will have to perform the validation

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

Status of the validation method image-analysis you want to enable or disable in the document validations execution.

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

Status of the validation method photocopy-analysis you want to enable or disable in the document validations execution.

allowed_retries number

Number of times users will be allowed to retry the validation

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

Status of the validation method data-consistency you want to enable or disable in the document validations execution.

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

Status of the validation method government-database-validation you want to enable or disable in the document validations execution.

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

Status of the validation method photo-of-photo you want to enable or disable in the document validations execution.

validator string
Allowed: identity-questions | face-recognition | voice-recognition | email-verification | phone-verification | document-validation | enterprise-data

[Required] Validator to be configured

document_type string
Allowed: passport | driver-license | general-registration | foreign-id | national-id | pep

Document type for which the document validation configuration will be created

document_version string
Allowed: mx_ine-f | mx_ine-e | mx_ine-g | mx_ife-c | mx_ife-d | mx_fm3 | co_national-id-2000 | co_national-id-2020 | co_foreign-id | co_pep | br_any | passport

Document version of the document type

threshold number

Correctness required to pass the validation from 0 to 1

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

Status of the validation method manual-review you want to enable or disable in the document validations execution.

Delete config

Allows deleting a validator config. Deleting the config sets its value back to the default value

Note: If you leave the field โ€˜typeโ€™ to delete empty, all the configuration is deleted.

Query Parameters
type string
[Optional]
Configuration type to be reset. If provided, the validator reset will only affect the configuration selected, All configurations will be reset otherwise
validator string
[Required]
Name of the validation config to delete

Validations

Validations is your tool for managing various validators such as face recognition, email verification, document checks, phone number validation, and electronic signatures. This API takes care of all logic needed for these validators, providing a single service where you can manage your multiple validators

Create new validation with account

Creates a new validation for the validation account. Check out our Guide on Liveness test to learn more about this feature.

Note: You need the account_id from the first step and If you had already created an enrollment, it is not necessary to create one again for each validation.

Request
Request Body *application/x-www-form-urlencoded
account_id string
[Required]

Validation account ID

type string
[Required]
Allowed: document-validation | face-recognition | email-validation | phone-validation

Validation type

user_authorized boolean
[Required]

Indicates whether the validation subject consents to be validated. Must be true for the validation to proceed.

threshold string

Likeness between the picture and the video required to pass the validation. By default, the treshold is set to 0.75

phone_locale string
Allowed: en | es | pt-BR

Language used to perform the validation via either the SMS or voice call

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.

phrase string

Phrase to be read out loud in the voice sample sent as RAW data in the PUT request to the upload_link

custom_type string

Inidicates the name of the Check Type to use for the background check linked to this validation. Keep in mind that the Check Type must existD

language string
Allowed: es | en

Language of the email that the final user receives

subvalidations array
Allowed: passive_liveness | similarity | government

Indicates which subvalidations you want to perform during a face recognition execution. If empty we only use similarity value

document_type string
Allowed: national-id | passport | foreign-id | pep | ppt | driver-license | invoice | identity-card

Document type. ppt please ask to sales

phone_type string
Allowed: home | office | recover

Phone number to be associated with the validation account on succesful validation. Required for phone-verification. The type must have been already enrolled

verify_channel string
Allowed: sms | call | whatsapp

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, we recommend giving both options to the users

country string
Allowed: CO | CL | MX | PE | ALL | BR | CR | VE | PA

Country where the document was issued

Perform validation

Perform given validation. If the validation was already performed, this would imply a retry of the validation. A retry could happen for a typo for example in the phone number or other mistakes.

Create validation

Creates a new validation. A validation can help ensure the person is who they say they are. This is important for all processes with legal responsibilities
Request
Request Body *application/x-www-form-urlencoded
user_authorized boolean
[Required]

Indicates whether the validation subject consents to be validated. Must be true for the validation to proceed.

type string
[Required]
Allowed: document-validation | face-recognition | email-validation | phone-validation

Validation type

account_id string
[Required]

Validation account ID

language string
Allowed: es | en

Language of the email that the final user receives

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.

phone_locale string
Allowed: en | es | pt-BR

Language used to perform the validation via either the SMS or voice call

threshold string

Likeness between the picture and the video required to pass the validation. By default, the treshold is set to 0.75

subvalidations array
Allowed: passive_liveness | similarity | government

Indicates which subvalidations you want to perform during a face recognition execution. If empty we only use similarity value

document_type string
Allowed: national-id | passport | foreign-id | pep | ppt | driver-license | invoice | identity-card

Document type. ppt please ask to sales

country string
Allowed: CO | CL | MX | PE | ALL | BR | CR | VE | PA

Country where the document was issued

verify_channel string
Allowed: sms | call | whatsapp

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, we recommend giving both options to the users

phone_type string
Allowed: home | office | recover

Phone number to be associated with the validation account on succesful validation. Required for phone-verification. The type must have been already enrolled

phrase string

Phrase to be read out loud in the voice sample sent as RAW data in the PUT request to the upload_link

custom_type string

Inidicates the name of the Check Type to use for the background check linked to this validation. Keep in mind that the Check Type must existD

Perform validation

Perform given validation. If the validation was already performed, this would imply a retry of the validation. A retry could happen for a typo for example in the phone number or other mistakes.
post
/v1/validations/{validation_id}

Get all account validations

Retrieve all validations associated with a specific account id. This is useful to easily have all validations of an user in one place.

Get validation

Retrieves the detailed information of a validation, given a validation id. This validation object has all the information needed

Get validations

Allows listing all validations linked with a specific account id. This endpoint helps track current validations statuses

Get validation

Returns a validation given a validation id. This validation object is useful to know exactly the status of the validation process

Enrollments

Enrollments lets you to manage the logic required to navigate a user through various validators. This capability is valuable as it enables you to register a user just once and conduct multiple validations on that user seamlessly

Create enrollment

Creates an enrollment for the validation account. Returns the created enrollment with its status and other information
Query Parameters
account_id string
[Optional]
Validation account ID. If left empty, a new validation account will be created

Get Enrollments by Account

Retrieve all enrollments associated with a specific account id. These enrollment objects include their status, and other information
get
/v1/accounts/{account_id}/enrollments

Get enrollment

Returns enrollment object with the information presented in the right about the enrollment status and other relevant information about the process at hand
get
/v1/enrollments/{enrollment_id}

Delete enrollment

Deletes an enrollment. If this endpoint is executed on an enrollment ID, the enrollment will be removed from the client account.
/v1/enrollments/{enrollment_id}

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.
get
/v1/status