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.
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.
Request example
curl --request POST \
--url 'https://api.checks.truora.com/v1/checks' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"country":"ALL","type":"person","user_authorized":true}'
Request body
application/x-www-form-urlencodedALL
BR
CO
CL
MX
PE
CR
Document country
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]
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
ID for Venezuelans working in Peru
This field also apply for PPT (Permiso de Protección Temporal) in Colombia
Person birth certificate
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).
Person foreign ID
male
masculino
hombre
h
female
femenino
mujer
m
Person gender. Used for the Renapo (Registro Nacional de Poblacion) Alternative method in Mexico. Required in order to get complete background checks in Mexico instead national_id using Alternative method.
CO
MX
PE
BR
EC
CL
VE
Country of birth. Required if native_national_id is provided
Driver’s license number
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
National ID
national-id, foreign-id, tax-id or passport
Professional ID card
Folio for Chilean certificate search. Chile only
Colombian escrow
15-digit IMEI to be validated
Person passport
Document number of Chilean identity. This number is used to get some additional information about a person. Chile only
Verification code registered for criminal records in Peru and Chile
Report ID the background check will be inserted into
Diplomatic ID
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 and Mexico if alternative method for Renapo is used.
Vehicle NIV number
Company name “Don’t forget this required field to complete background checks in Brazil”
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ú and Mexico if alternative method for Renapo is used.
National ID from the person native country. Keep in mind that you must provide the native_country if you enter a native_national_id
ID for Venezuelans working in Colombia
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
ID of the vehicle owner
Vehicle license plate
Payment day of a vehicle circulation permit (Chile only)
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
Used for the RG (Registro Geral) identification in Brazil, and Renapo (Registro Nacional de Personas) identification in Mexico. 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 and Mexico if alternative method for Renapo is used.
Company ID used for tax payments
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.
Person phone number. Required by law to notify the person their background is being checked
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 and Mexico if alternative method for Renapo is used.
Was this helpful?
Your feedback helps us improve the docs.
Receive webhook
Request example
curl --request POST \
--url 'https://api.checks.truora.com/v1/webhooks/{webhook_type}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The type of webhook (e.g., complyadvantage, etc.)
Was this helpful?
Your feedback helps us improve the docs.
List checks
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/checks' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
ID of the report of background checks to be returned.
Start key value for the pagination.
Was this helpful?
Your feedback helps us improve the docs.
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.
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/checks/{check_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
A unique identifier for a check.
Was this helpful?
Your feedback helps us improve the docs.
Get Check Attachments
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/checks/{check_id}/attachments' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
A unique identifier for a check.
Was this helpful?
Your feedback helps us improve the docs.
List Check Details
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/checks/{check_id}/details' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
A unique identifier for a check.
Query Parameters
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 value for the pagination.
Was this helpful?
Your feedback helps us improve the docs.
Summarize
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/checks/{check_id}/summarize' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
A unique identifier for a check.
Was this helpful?
Your feedback helps us improve the docs.
Get the status of a database
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/health?country={country}&unixTimestampSeconds={unixTimestampSeconds}&unixtimezoneOffsetSeconds={unixtimezoneOffsetSeconds}' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Country code in uppercase ISO 3166 format (e.g., CO for Colombia).
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.
Offset between the local time and the UTC time in seconds. (e.g., Colombia is at UTC -18000 seconds).
Was this helpful?
Your feedback helps us improve the docs.
Delete check
Request example
curl --request DELETE \
--url 'https://api.checks.truora.com/v1/checks/{check_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
A unique identifier for a check.
Was this helpful?
Your feedback helps us improve the docs.
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
typeRequest example
curl --request POST \
--url 'https://api.checks.truora.com/v1/config' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"country":"ALL","type":"string"}'
Request body
application/x-www-form-urlencodedALL
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
Custom type name. It cannot be person, vehicle, or company. Use this type in your checks to perform custom-type checks
Driving license weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Affiliation and insurance weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Alert in media weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Criminal record weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Business background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Personal identity weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Taxes and financial background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Vehicle information weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Vehicle certificate background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Professional background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Traffic fines weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
International background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Legal background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Was this helpful?
Your feedback helps us improve the docs.
Update custom type
Request example
curl --request PUT \
--url 'https://api.checks.truora.com/v1/config' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"country":"ALL","type":"string"}'
Request body
application/x-www-form-urlencodedALL
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
Custom type name. It cannot be person, vehicle, or company. Use this type in your checks to perform custom-type checks
Alert in media weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
International background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Business background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Affiliation and insurance weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Legal background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Criminal record weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Driving license weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Personal identity weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Taxes and financial background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Vehicle information weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Vehicle certificate background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Professional background weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Traffic fines weight for score calculation. From 0 to 1. If not provided, the dataset is skipped entirely decreasing the search time
Was this helpful?
Your feedback helps us improve the docs.
List custom types
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/config' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Start key value for the pagination.
Was this helpful?
Your feedback helps us improve the docs.
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.
Request example
curl --request DELETE \
--url 'https://api.checks.truora.com/v1/config?country={country}&type={type}' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Country where the custom type is valid. Use ISO 3166 format in uppercase (e.g., CO for Colombia)
Name of the custom type to be deleted.
Was this helpful?
Your feedback helps us improve the docs.
Settings
Allows the configuration of parameters such as names matching type, retries and max duration.
Create setting
Request example
curl --request POST \
--url 'https://api.checks.truora.com/v1/settings' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedIndicates 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
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
Indicates whether or not database queries must be retried until they successfully return a response or until the max_duration time is reached
Was this helpful?
Your feedback helps us improve the docs.
Credentials
Allows the management of credentials for the checks API.
Create or update credential
Request example
curl --request POST \
--url 'https://api.checks.truora.com/v1/config/credentials/{database_id}' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"password":"string","username":"string"}'
Request body
application/jsonUsername for the collector credential
Password for the collector credential
Additional authentication complements
Was this helpful?
Your feedback helps us improve the docs.
List credentials
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/config/credentials' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Delete credential
Request example
curl --request DELETE \
--url 'https://api.checks.truora.com/v1/config/credentials/{database_id}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Continuous
Enables the creation of recurring checks with customizable frequency, providing notifications whenever there are changes in check scores.
Create Continuous Check
Request example
curl --request POST \
--url 'https://api.checks.truora.com/v1/continuous-checks' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"check_id":"string","end_date":"string","frequency":"string"}'
Request body
application/x-www-form-urlencodedTime 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
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.
Background checks to be processed recurrently
Was this helpful?
Your feedback helps us improve the docs.
Update Continuous Checks
Request example
curl --request PUT \
--url 'https://api.checks.truora.com/v1/continuous-checks/{continuous_check_id}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencoded0
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.
Time between background checks
enabled
disabled
Indicates whether the background checks must be processed recurrently
Path Parameters
Unique ID assigned after calling CreateContinuousCheck.
Was this helpful?
Your feedback helps us improve the docs.
List Continuous Checks
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/continuous-checks' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Get Continuous Checks
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/continuous-checks/{continuous_check_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique ID assigned after calling CreateContinuousCheck.
Was this helpful?
Your feedback helps us improve the docs.
List Continuous Check Logs
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/continuous-checks/{continuous_check_id}/history' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique ID assigned after calling CreateContinuousCheck.
Was this helpful?
Your feedback helps us improve the docs.
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
Request example
curl --request POST \
--url 'https://api.checks.truora.com/v1/checks/{check_id}/pdf' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
A unique identifier for a check.
Was this helpful?
Your feedback helps us improve the docs.
Get PDF
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/checks/{check_id}/pdf' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
A unique identifier for a check.
Query Parameters
Specifies the language of the PDF; use lowercase ISO 639-1 format. If not specified, the PDF will be downloaded in Spanish by default.
Was this helpful?
Your feedback helps us improve the docs.
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 example
curl --request POST \
--url 'https://api.checks.truora.com/v1/batches' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"country":"ALL","service":"checks","type":"person"}'
Request body
application/x-www-form-urlencodedperson
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.
checks
The service for which the batch will be processed
ALL
BR
CO
CL
MX
PE
CR
The country of batch checks
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.
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
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.
Was this helpful?
Your feedback helps us improve the docs.
Request Batch Report Generation
Request example
curl --request POST \
--url 'https://api.checks.truora.com/v1/batches/{batch_id}/report' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"format":"string"}'
Request body
application/x-www-form-urlencodedBatch report file format
Path Parameters
Unique identifier of the batch.
Was this helpful?
Your feedback helps us improve the docs.
Start Batch
Request example
curl --request POST \
--url 'https://api.checks.truora.com/v1/batches/{batch_id}/start' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique identifier of the batch.
Was this helpful?
Your feedback helps us improve the docs.
Stop Batch
Request example
curl --request PUT \
--url 'https://api.checks.truora.com/v1/batches/{batch_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique identifier of the batch.
Was this helpful?
Your feedback helps us improve the docs.
Get Batch
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/batches/{batch_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique identifier of the batch.
Was this helpful?
Your feedback helps us improve the docs.
Get Batch Report
Request example
curl --request GET \
--url 'https://api.checks.truora.com/v1/batches/{batch_id}/report' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique identifier of the batch.
Was this helpful?
Your feedback helps us improve the docs.
Create Rule
Request example
curl --request POST \
--url 'https://api.account.truora.com/v1/bre/rules' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedCondition for the rule, written in jsonlogic
checks.check.finished
Event type
Rule name
Was this helpful?
Your feedback helps us improve the docs.
Set action env var
Request example
curl --request POST \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}/actions/{action_id}/envs' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedVariable name (must start with a letter, alphanumeric and underscore only)
Whether the value is stored as secret (encrypted)
Variable value
Was this helpful?
Your feedback helps us improve the docs.
Edit Rule
Request example
curl --request PUT \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedCondition for the rule, written in jsonlogic
checks.check.finished
Event type
Rule name
Was this helpful?
Your feedback helps us improve the docs.
List Rules
Request example
curl --request GET \
--url 'https://api.account.truora.com/v1/bre/rules' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Get Rule
Request example
curl --request GET \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Get action env vars
Request example
curl --request GET \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}/actions/{action_id}/envs' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Delete Rule
Request example
curl --request DELETE \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Delete env var
Request example
curl --request DELETE \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}/actions/{action_id}/envs/{var_name}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Get variables spec
Request example
curl --request GET \
--url 'https://api.account.truora.com/v1/bre/variables-spec' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Create Rule Action
Request example
curl --request POST \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}/actions' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedenabled
disabled
Action status
http_request
email
create_check
Action type
Action name
Was this helpful?
Your feedback helps us improve the docs.
Update Action
Request example
curl --request PUT \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}/actions/{action_id}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedAction name
enabled
disabled
Action status
http_request
email
create_check
Action type
Was this helpful?
Your feedback helps us improve the docs.
Get Rule Actions
Request example
curl --request GET \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}/actions' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Delete Action
Request example
curl --request DELETE \
--url 'https://api.account.truora.com/v1/bre/rules/{rule_id}/actions/{action_id}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Create User
Request example
curl --request POST \
--url 'https://api.account.truora.com/v1/account/users' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"country":"string","email":"string","language":"es","phone_number":"string"}'
Request body
application/x-www-form-urlencodedes
en
pt
Language used for the user communications
Email of the user. Becomes the username and is stored lowercased
Country code specified in ISO 3166 Alpha-2 format, for example CO for Colombia
Phone number in E.164 format, for example +573001234567
Role assigned to the user. Defaults to default_access and must reference an existing role
Billing hub for the user. Required when the tenant has billing hubs and must match one of them exactly
Display name of the user
Was this helpful?
Your feedback helps us improve the docs.
Update User
Request example
curl --request PUT \
--url 'https://api.account.truora.com/v1/account/users/{username}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedName of the role to be assigned to the user. Must reference an existing role
Billing hub for the user. Stored uppercased and must match a tenant billing hub
Display name of the user
Phone number in E.164 format, for example +573009876543
Path Parameters
The user’s username, typically their email. URL-encode @ and + characters.
Was this helpful?
Your feedback helps us improve the docs.
List Users
Request example
curl --request GET \
--url 'https://api.account.truora.com/v1/account/users' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Pagination cursor taken from the next link of a previous response.
Was this helpful?
Your feedback helps us improve the docs.
Delete User
Request example
curl --request DELETE \
--url 'https://api.account.truora.com/v1/account/users' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"email":"string"}'
Request body
application/x-www-form-urlencodedEmail of the user to delete. Identifies the user in the request body, not in the URL path
Was this helpful?
Your feedback helps us improve the docs.
Activate / Deactivate User
Request example
curl --request PATCH \
--url 'https://api.account.truora.com/v1/account/users/{username}/status' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedReason for the status change. Required and stored in the audit log
enabled
disabled
New status of the user in the account. One of enabled or disabled
Path Parameters
Username
Was this helpful?
Your feedback helps us improve the docs.
Create Role
Request example
curl --request POST \
--url 'https://api.account.truora.com/v1/roles' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedHuman-readable description of the role
checks.behavior
checks.country_all
checks.country_ar
checks.country_br
checks.country_cl
checks.country_co
checks.country_co_premium
checks.country_cr
checks.country_ec
checks.country_mx
checks.country_pa
checks.country_pe
truora.keys
truora.users
validations.cell_phone_validation_br
validations.cell_phone_validation_co
validations.cell_phone_validation_mx
validations.documents_validation_br
validations.documents_validation_co
validations.documents_validation_mx
validations.email_validation
validations.enterprise_data
validations.face_recognition
validations.identity_questions
validations.voice_recognition
Enter this field as many times as necessary in order to include all permissions
Role name. It must be unique and also cannot be full_access or default_access
Optional JSON-Logic access rule. Repeat the field for each rule
Was this helpful?
Your feedback helps us improve the docs.
Update Role
Request example
curl --request PUT \
--url 'https://api.account.truora.com/v1/roles/{role_name}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedHuman-readable description of the role
checks.behavior
checks.country_all
checks.country_ar
checks.country_br
checks.country_cl
checks.country_co
checks.country_co_premium
checks.country_cr
checks.country_ec
checks.country_mx
checks.country_pa
checks.country_pe
truora.keys
truora.users
validations.cell_phone_validation_br
validations.cell_phone_validation_co
validations.cell_phone_validation_mx
validations.documents_validation_br
validations.documents_validation_co
validations.documents_validation_mx
validations.email_validation
validations.enterprise_data
validations.face_recognition
validations.identity_questions
validations.voice_recognition
Enter this field as many times as necessary in order to include all permissions
Role name. It must be unique and also cannot be full_access or default_access
Optional JSON-Logic access rule. Repeat the field for each rule
Path Parameters
The name of the role to operate on.
Was this helpful?
Your feedback helps us improve the docs.
List Permissions
Request example
curl --request GET \
--url 'https://api.account.truora.com/v1/permissions' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Optional. Use list=user to return the calling user’s role permissions instead of the account master set.
Was this helpful?
Your feedback helps us improve the docs.
List Roles
Request example
curl --request GET \
--url 'https://api.account.truora.com/v1/roles' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Pagination cursor taken from the next link of a previous response.
Was this helpful?
Your feedback helps us improve the docs.
Get Role
Request example
curl --request GET \
--url 'https://api.account.truora.com/v1/roles/{role_name}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The name of the role to operate on.
Was this helpful?
Your feedback helps us improve the docs.
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.
Base URL
https://api.identity.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.
Send Identity Process Link
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/web-integration/{flow}/process-access-link' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"lang":"en","message_channel":"whatsapp","phone_number":"string"}'
Request body
application/x-www-form-urlencodedIndicates the phone number of the person to whom the link will be sent. This parameter must be provided in E.164 format (e.g., +573001112233 for Colombia).
whatsapp
email
sms
Indicates the channel through which the link to initiate the validation will be sent. Before selecting the channel, note that some problems may occur when receiving the SMS due to external protocols of mobile service providers.
en
es
pt
Indicates the language of the message explaining why the validation link is being sent. This parameter must be sent using the ISO 639-1 lowercase format.
Target email address. Required if message_channel is set to email. Must follow a valid email format.
Identifier for the outbound message to use. Required if message_channel is set to whatsapp. Must be valid for redirection.
Template variables required for the outbound message. To use these variables, outbound_id must be explicitly set.
Was this helpful?
Your feedback helps us improve the docs.
Generate Token
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/api-keys' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"key_type":"backend"}'
Request body
application/x-www-form-urlencodedbackend
web
API key type
ALL
BR
CL
CO
CR
EC
MX
PE
AR
SV
Country for the identity verification process. Required only if grant is set to digital-identity
List of emails to be validated during the identity verification process
URL where the user is to be redirected once the verification process has ended. Required if grant is set to digital-identity
Billing hubs allow for separated counters and billing. Required if the customer uses billing hubs
passport
driver-license
foreign-id
national-id
pep
Document type for the identity verification process. Only used if grant is set to digital-identity
Validation flow to be performed for the identity verification process. Required only if grant is set to digital-identity
digital-identity
signals
Indicates which service this API key grants access to. Required if key_type is set to web or sdk
API key name. Required only if key_type was set to backend
List of phone numbers to be validated during the identity verification process
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. Version 0 is used by default
Was this helpful?
Your feedback helps us improve the docs.
Download Process PDF
Retrieves the PDF document for a specified process by its ID.
If the PDF has not been requested before, it is generated first, progressing through:
- 202 Accepted →
"file_status":"requested" - 202 Accepted →
"file_status":"in_progress" - 302 Found * → Redirects to the PDF file when ready
- 200 OK → Returns the file
If the PDF has already been generated, the response immediately returns:
- 302 Found * → Redirects to the PDF file when ready
- 200 OK → Returns the file
Polling: If the file is not ready (202 Accepted), retry until 302 Found or 200 OK.
* 302 Redirect Handling: Most API clients and browsers follow redirects automatically. However, if your API client does not, extract the Location header containing the PDF’s URL and make a GET request to download the file.
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/pdf' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the completed process for which the PDF is requested.
Was this helpful?
Your feedback helps us improve the docs.
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_statusvalues 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.
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/result' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the process for which results are being retrieved.
Was this helpful?
Your feedback helps us improve the docs.
Download Process Video Call Recordings
Retrieves the video call recordings for a specified process by its ID.
If the video call recordings have not been requested before, it is generated first, progressing through:
- 202 Accepted →
"file_status":"requested" - 202 Accepted →
"file_status":"in_progress" - 302 Found * → Redirects to the video call recordings file when ready
- 200 OK → Returns the file
If the video call recordings have already been generated, the response immediately returns:
- 302 Found * → Redirects to the video call recordings file when ready
- 200 OK → Returns the file
Polling: If the file is not ready (202 Accepted), retry until 302 Found or 200 OK.
* 302 Redirect Handling: Most API clients and browsers follow redirects automatically. However, if your API client does not, extract the Location header containing the video call recordings’s URL and make a GET request to download the file.
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/video-call-recordings' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the completed process for which the video call recordings is requested.
Was this helpful?
Your feedback helps us improve the docs.
Manage WhatsApp Business lines, inbound flows, campaigns, and sessions.
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 example
curl --request POST \
--url 'https://api.identity.truora.com/v1/whatsapp/inbounds' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedIdentifier of the Flow previously created.
Unique message the users will be sending to the business WhatsApp (WABA) in order to begin the Flow.
Phone number of the WABA that interacts with the users. Must include the country code. Example 14080001111.
Was this helpful?
Your feedback helps us improve the docs.
Create WABA subscription
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/whatsapp/waba-subscription' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Provider Statuses
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/whatsapp/{provider}/statuses' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Cancell Campaign
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/whatsapp/campaigns/{campaign_id}/cancel' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Finish WhatsApp session
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/whatsapp/finish-whatsapp-session' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
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 example
curl --request POST \
--url 'https://api.identity.truora.com/v1/whatsapp/inbounds/{inbound_flow_id}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedIdentifier of the Flow previously created.
Unique message the users will be sending to the business WhatsApp (WABA) in order to begin the Flow.
Phone number of the WABA that interacts with the users. Must include the country code. Example 14080001111.
Was this helpful?
Your feedback helps us improve the docs.
Put WABA Line config
Request example
curl --request PUT \
--url 'https://api.identity.truora.com/v1/whatsapp/lines/{waba_line}/config' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The default_flow_id parameter is used to specify the ID of the default flow to be used in a WABA Line
Was this helpful?
Your feedback helps us improve the docs.
Get WABA Line
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/whatsapp/lines/{waba_line}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Get Inbound Flow
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/whatsapp/inbounds/{inbound_flow_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique identifier of inbound flows
Was this helpful?
Your feedback helps us improve the docs.
List Inbound Flows
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/whatsapp/inbounds' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
[Optional] start key value for pagination, if you want to go to the previous or next page.
Was this helpful?
Your feedback helps us improve the docs.
List WABA Lines
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/whatsapp/lines' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
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_statusvalues 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.
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/result' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the process for which results are being retrieved.
Was this helpful?
Your feedback helps us improve the docs.
Get Campaign
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/whatsapp/campaigns/{campaign_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique identifier for the campaign
Was this helpful?
Your feedback helps us improve the docs.
Get Process Validations
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/validations' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
List WABAs
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/whatsapp/wabas' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Remove Inbound Flow
Request example
curl --request DELETE \
--url 'https://api.identity.truora.com/v1/whatsapp/inbounds/{inbound_flow_id}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Update WABA Line
Request example
curl --request PATCH \
--url 'https://api.identity.truora.com/v1/whatsapp/lines/{waba_line}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
WA Engagement
Increase your customer engagement by automating your customer service, marketing and sales process in WhatsApp.
Delete Agent Templates
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/agent/templates/delete' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"template_names":"string"}'
Request body
application/jsonArray of the names of the templates that should be deleted.
Was this helpful?
Your feedback helps us improve the docs.
Update agent capacity settings
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/agent/capacities' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"update_type":"user"}'
Request body
application/jsonuser
default
toggle_capacity
Determines the type of update to be performed. “toggle_capacity” is used to enable or disable the agent capacity feature. The other types are used to update default or user-specific capacity settings.
Capacity value to use for the update. Not required for “toggle_capacity” update type.
List of targets whose settings will be updated. Only required for “user” update type.
Was this helpful?
Your feedback helps us improve the docs.
Send Outbound Message
status needs to be APPROVED before it can be sent.Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/whatsapp/outbounds/send' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedThis 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. 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.
[Required] Country code for the user phone number. Example: +57
[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
[Required] ID of an approved Outbound Message. Example: OTB123
[Required] Phone number without the country code of the user that will receive the message. Example: 0001234567
[Required] Must be true for starting the conversation.
User has authorized to be contacted through WhatsApp.
[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.
Was this helpful?
Your feedback helps us improve the docs.
Update agent status
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/agent/status' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"status":"online","username":"string"}'
Request body
application/jsonDetermines the user whose status will be updated.
online
offline
The new status the user will have.
Was this helpful?
Your feedback helps us improve the docs.
Create Outbound Messages
Creates an Outbound Message that allows sending messages to users as a first interaction. Each outbound message has two dynamic evaluations assigned by Meta: a status and a quality rating. Both are subject to change over time based on review processes and user feedback.
Status values:
PENDING: The outbound is under review by Meta and cannot be sent yet.APPROVED: The outbound has been approved and is eligible to be sent.REJECTED: The outbound was rejected by Meta and cannot be used.FLAGGED: The outbound has received a low quality rating. This is a warning state. If the quality improves to HIGH or MEDIUM for 7 consecutive days, the status will revert to APPROVED.DISABLED: The outbound maintained a low quality rating for over 7 days and was disabled. It cannot be edited or used to send messages.PAUSED: The outbound has been temporarily paused and cannot be sent.
Quality rating values:
HIGH: High read rate with no negative feedback (e.g., spam reports or blocks).MEDIUM: Some negative signals such as low engagement, spam reports, or occasional blocks.LOW: Frequent user reports, blocks, or very low engagement; the template may be paused.PENDING: Default value when the template is created. There is not enough data yet to evaluate quality.
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/whatsapp/outbounds' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"category":"MARKETING","is_notification":true,"language_code":"en","outbound_name":"string","template_type":"TEXT","waba_phone_number":"string"}'
Request body
application/x-www-form-urlencodedTEXT
IMAGE
VIDEO
DOCUMENT
Defines the type of content included in the outbound message. Use TEXT when the message does not contain any media elements (image, video, or document).
Supported media types:
- IMAGE: image/jpeg, image/png (max 5 MB)
- VIDEO: video/mp4, video/3gpp (max 16 MB)
- DOCUMENT: Any valid MIME type (max 100 MB)
If category is AUTHENTICATION, only the TEXT template type is allowed.
en
en_GB
en_US
es
es_AR
es_MX
es_ES
pt_BR
pt_PT
Language code for the outbound message content.
Indicates whether the outbound message is a notification (true) or initiates a flow (false).
If set to true, the outbound is considered a notification and cannot be associated with a flow upon sending. Additionally, notification-type outbounds cannot include QUICK_REPLY buttons.
WABA Line (WhatsApp Business Account Phone Number) used to send the outbound message.
Identifier name for the outbound message.
Maximum 512 characters.
MARKETING
AUTHENTICATION
UTILITY
Message category. Refer to the Meta Template Categorization to determine the appropriate category when creating outbound messages.
Applicable only if category is MARKETING or UTILITY.
Optional plain text footer displayed immediately after the body component.
Maximum 60 characters.
Applicable only if category is AUTHENTICATION.
Set this as an integer to include a footer in the message indicating how many minutes remain before the authentication code expires. If omitted, no expiration footer will be shown.
The footer text is predefined based on the selected language_code. Examples:
- Spanish (es):
Este código caduca en <code_expiration_minutes> minutos. - English (en):
This code expires in <code_expiration_minutes> minutes. - Portuguese (pt_BR):
Este código expira em <code_expiration_minutes> minutos.
Valid values range from 1 to 90 minutes.
Applicable only if category is MARKETING or UTILITY.
Main message body in plain text. You may include multiple variables; use double curly braces: {{.variable_name}}.
-
Example without variables:
Shop our Holiday sale now! -
Example with variables:
Shop now through {{.website_url}} and use code {{.promo_code}} to get {{.discount_percentage}} off all merchandise.
Maximum 1024 characters.
If category is AUTHENTICATION, the message content is predefined based on the selected language and cannot be customized. A single variable ({{.code}}) is always used for the code value, and it must be provided each time the message is sent. Examples:
- Spanish (es):
Tu código de verificación es {{.code}}. Por tu seguridad, no lo compartas. - English (en):
{{.code}} is your verification code. For your security, do not share this code. - Portuguese (pt_BR):
Seu código de verificação é {{.code}}. Para sua segurança, não o compartilhe.
Optional interactive buttons that perform actions when tapped. Outbound messages can include up to 10 buttons in total.
This field is not available for outbounds with category set to AUTHENTICATION, since in that case a predefined COPY_CODE button is automatically included.
Each button in the array is an object with the following properties:
-
type(string): Type of button. Must be one of:QUICK_REPLY: Text-only buttons that send a predefined message when tapped. Up to 10 allowed. Must be grouped separately from non-quick reply buttons.URL: Opens a website when tapped. Up to 2 allowed.PHONE_NUMBER: Initiates a call to the specified number. Only 1 allowed.COPY_CODE: Copies a string to the clipboard. Only 1 allowed. Only supported ifcategoryis equal toMARKETING. A single variable ({{.code}}) is always used for the value to be copied, and it must be provided each time the message is sent. Maximum 15 characters.
-
text(string): Label of the button. Maximum 25 characters. ForCOPY_CODEbuttons, this must be an empty string ("") because the label is automatically set based on thelanguage_code. -
url(string): Required iftypeisURL. Website URL. Max 2000 characters. Supports 1 variable at the end; use double curly braces:{{.variable_name}}. The URL must include a valid host and use either thehttporhttpsscheme. For example,https://www.example.com/{{.url_path}}is valid, butftp://...or a URL without a hostname is not. -
phone_number(string): Required iftypeisPHONE_NUMBER. Business phone number to call. Max 20 characters.
The order of the buttons is determined by their position in the array — the first element (index 0) will be displayed as the first button, the second (index 1) as the second, and so on.
Button usage rules by outbound type:
- Notification outbounds (
is_notification = true) cannot includeQUICK_REPLYbuttons. - Flow-trigger outbounds (
is_notification = false) can include any combination of button types.
Valid groupings:
- QUICK_REPLY, QUICK_REPLY
- QUICK_REPLY, QUICK_REPLY, URL, PHONE_NUMBER
- URL, PHONE_NUMBER, QUICK_REPLY, QUICK_REPLY
Invalid groupings:
- QUICK_REPLY, URL, QUICK_REPLY
- URL, QUICK_REPLY, URL
Outbound messages containing 4 or more buttons, or a combination of a quick reply button and one or more buttons of another type, are not visible on WhatsApp desktop clients. Users receiving such messages will be prompted to view them on a mobile device.
Required if template_type is a media type (IMAGE, VIDEO, DOCUMENT).
This is the ID of the file previously uploaded to the Media service, which will be used as the media content in the message.
Object that defines the example values for each variable used in the outbound message. These variables are referenced in the content, header_text, URL buttons, or the code placeholder in AUTHENTICATION messages.
This object is only used as a sample for validating and previewing the outbound message during creation. It does not affect the actual content sent to end users.
Each key in this object must match the variable name used in the message template (without the {{. }} notation), and the value should be an object with a single field:
value(string): Example value assigned to the variable.
Example:
If your message contains:
"header_text": "Our new sale starts {{.sale_start_date}}!",
"content": "Shop now through {{.website_url}} and use code {{.promo_code}} to get {{.discount_percentage}} off all merchandise."
Then the var object should look like:
"var": {
"sale_start_date": { "value": "today" },
"website_url": { "value": "truora.com" },
"promo_code": { "value": "summerTruora2025" },
"discount_percentage": { "value": "25%" }
}
Applicable only if category is MARKETING or UTILITY and template_type is TEXT.
Optional text header that appears at the top of the outbound message. You can include up to one variable; use double curly braces: {{.variable_name}}.
-
Example without variable:
Our Holiday sale starts December 1st! -
Example with variable:
Our new sale starts {{.sale_start_date}}!
Maximum 60 characters.
Was this helpful?
Your feedback helps us improve the docs.
Create Agent Template
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/agent/templates' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"template_name":"string","template_type":"text"}'
Request body
application/jsontext
Type of the template, which defines the content of the template.
Name of the template.
Was this helpful?
Your feedback helps us improve the docs.
Request a new chat export
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/chat/export' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"export_format":"tsv","export_type":"all_chats","language":"en","time_range_end_date":"string","time_range_start_date":"string"}'
Request body
application/jsonen
pt
es
Language used in the formatting of the export output files.
all_chats
single_chat
Type of the export. Defines the scope of the chats included in it.
tsv
Format of the file or files the export request generates as output.
Date defining the start of the time range that should be used for the export. Currently only year and month are taken into account.
Date defining the end of the time range that should be used for the export. Currently only year and month are taken into account.
ID of the chat that will be exported. Only required if export_type is “single_chat”.
Optional name for the export request.
Was this helpful?
Your feedback helps us improve the docs.
Force chat assignment dequeue
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/chat/{chat_id}/force-dequeue' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"assignment_type":"specific_agent"}'
Request body
application/jsonspecific_agent
The strategy used to override the assignment request.
The assignment target. Only required for certain assignment types. For specific agent assignments, it must be the agent’s email.
Was this helpful?
Your feedback helps us improve the docs.
Send a message to a chat
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/chat/{chat_id}/send' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
ID of the chat to send the message in.
Was this helpful?
Your feedback helps us improve the docs.
Update Outbound Message
Request example
curl --request PUT \
--url 'https://api.identity.truora.com/v1/whatsapp/outbounds/{outbound_id}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Update Agent Template
Request example
curl --request PUT \
--url 'https://api.identity.truora.com/v1/engagement/agent/templates/{template_name}' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"template_type":"text"}'
Request body
application/jsontext
Type of the template, which defines the content of the template.
Was this helpful?
Your feedback helps us improve the docs.
Update chat owner/status
Request example
curl --request PUT \
--url 'https://api.identity.truora.com/v1/engagement/chat/agent/{chat_id}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/jsonThe email of the agent that will become the chat’s owner.
open
closed
The new status of the chat.
Path Parameters
ID of the chat to be updated.
Was this helpful?
Your feedback helps us improve the docs.
Download Process PDF
Retrieves the PDF document for a specified process by its ID.
If the PDF has not been requested before, it is generated first, progressing through:
- 202 Accepted →
"file_status":"requested" - 202 Accepted →
"file_status":"in_progress" - 302 Found * → Redirects to the PDF file when ready
- 200 OK → Returns the file
If the PDF has already been generated, the response immediately returns:
- 302 Found * → Redirects to the PDF file when ready
- 200 OK → Returns the file
Polling: If the file is not ready (202 Accepted), retry until 302 Found or 200 OK.
* 302 Redirect Handling: Most API clients and browsers follow redirects automatically. However, if your API client does not, extract the Location header containing the PDF’s URL and make a GET request to download the file.
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/pdf' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the completed process for which the PDF is requested.
Was this helpful?
Your feedback helps us improve the docs.
Search Chats
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/chat/search' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Filter used to search chats based on either their corresponding contact’s name or phone number.
If set to “true”, only chats whose assignments are currently enqueued will be returned.
Filter to limit results based on chats’ last activity dates. Must be provided alongside “to_last_activity_date” param to work.
If provided, only chats whose latest activity corresponds to the given actor type are returned.
If provided, only chats whose latest activity is of the given type are returned.
If provided, only chats with the specified owner will be returned.
Used for pagination purposes. Responses will include this value in case there are further result pages.
Allowed: open | closed | UNASSIGNED
If provided, only chats that have any of the specified tags will be returned.
Filter to limit results based on chats’ last activity dates. Must be provided alongside “from_last_activity_date” param to work.
Was this helpful?
Your feedback helps us improve the docs.
Get Chat
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/chat/{chat_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
ID of the chat to get.
Was this helpful?
Your feedback helps us improve the docs.
Get Channels
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/channels' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Used for pagination purposes. Responses will include this value in case there are further result pages.
Was this helpful?
Your feedback helps us improve the docs.
Get ICE servers
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/calling/ice-servers' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
List chat exports
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/chat/export' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Filter by the exported chat ID. Only applicable for single_chat exports.
Filter exports by time range end date. Must be in RFC3339 format.
Filter by export format. Allowed values: tsv.
Filter by export name. Only exports whose names contain this value will be returned (case-insensitive).
Filter by export type. Allowed values: all_chats, single_chat.
Filter by the language used in the export output. Allowed values: en, es, pt.
Maximum number of results to return per page.
If provided, only exports requested by the specified actor will be returned.
Filter exports by time range start date. Must be in RFC3339 format.
Pagination cursor. Use the value from the previous response’s next URL to fetch the next page.
Was this helpful?
Your feedback helps us improve the docs.
Get groups counters
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/agent/groups/counters' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Search Chat Activities
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/chat/{chat_id}/activities' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
ID of the chat the activities belong to.
Query Parameters
If provided, only activities whose actor is of the specified type will be returned.
Used for pagination purposes. Responses will include this value in case there are further result pages.
If provided, only activities with the specified type will be returned.
Was this helpful?
Your feedback helps us improve the docs.
Get Assignment Ruleset
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/agent/assignment-rulesets/{ruleset_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
ID of the ruleset to get
Was this helpful?
Your feedback helps us improve the docs.
Download Process Video Call Recordings
Retrieves the video call recordings for a specified process by its ID.
If the video call recordings have not been requested before, it is generated first, progressing through:
- 202 Accepted →
"file_status":"requested" - 202 Accepted →
"file_status":"in_progress" - 302 Found * → Redirects to the video call recordings file when ready
- 200 OK → Returns the file
If the video call recordings have already been generated, the response immediately returns:
- 302 Found * → Redirects to the video call recordings file when ready
- 200 OK → Returns the file
Polling: If the file is not ready (202 Accepted), retry until 302 Found or 200 OK.
* 302 Redirect Handling: Most API clients and browsers follow redirects automatically. However, if your API client does not, extract the Location header containing the video call recordings’s URL and make a GET request to download the file.
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/video-call-recordings' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the completed process for which the video call recordings is requested.
Was this helpful?
Your feedback helps us improve the docs.
List Outbound Messages
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/whatsapp/outbounds?line={line}' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
If ’true’, the response includes pagination (outbounds, self, next). If ‘false’ or not sent, the response is just the array of outbounds, and if there are no results, it may return 404.
Default flow ID to filter outbounds associated with that flow. Example: IPF123456
Allowed: MARKETING | UTILITY | AUTHENTICATION
WhatsApp business account line (WABA). Do not forget that you must add the country code followed by the number. Example: 1432567893
Search text for the outbounds, or outbound ID when the value starts with the OTB prefix. If it starts with OTB, only that outbound is returned (search by ID). Example: OTB123456
Cursor for pagination. Use the value returned in the next link of the previous response to fetch the next page. Omit for the first page.
Allowed: APPROVED | PENDING | REJECTED | PAUSED | PENDING_DELETION | DISABLED | FLAGGED
Was this helpful?
Your feedback helps us improve the docs.
Get Agent Templates
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/agent/templates' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
The maximum number of items that should be returned in the response.
If specified, only templates whose name starts with this term will be returned.
Used for pagination purposes. Responses will include this value in case there are next result pages.
Was this helpful?
Your feedback helps us improve the docs.
Get agents status
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/agent/status' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
If specified, only users belonging to any of the specified groups will be returned.
Used for pagination purposes. Responses will include this value in case there are further result pages.
If specified, only users with this status will be returned. Allowed values: “online”, “offline”
If specified, only usernames containing this value will be returned.
Was this helpful?
Your feedback helps us improve the docs.
Get Outbound Message
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/whatsapp/outbounds/{outbound_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
outbound ID
Was this helpful?
Your feedback helps us improve the docs.
Remove Outbound Message
Request example
curl --request DELETE \
--url 'https://api.identity.truora.com/v1/whatsapp/outbounds/{outbound_id}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Delete Agent Template
Request example
curl --request DELETE \
--url 'https://api.identity.truora.com/v1/engagement/agent/templates/{template_name}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Name of the template to delete
Was this helpful?
Your feedback helps us improve the docs.
Catalogs
Manage your catalogs and products in a single place.
Create Catalog
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/catalogs' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"catalog_name":"string","provider_type":"META"}'
Request body
application/jsonMETA
Type of the provider. For example, ‘META’.
Name of the catalog.
commerce
Vertical of the catalog. For example, ‘commerce’.
Was this helpful?
Your feedback helps us improve the docs.
Link a catalog to a WABA
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}/link-waba' \
--header 'Truora-API-Key: {api_key}'
Request body
application/jsonThe ID of the WABA to link the catalog to.
Was this helpful?
Your feedback helps us improve the docs.
Create products for a catalog
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}/products' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"products":"string"}'
Request body
application/jsonProducts to create.
Was this helpful?
Your feedback helps us improve the docs.
Update catalog
Request example
curl --request PUT \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
ID of the catalog to update.
Was this helpful?
Your feedback helps us improve the docs.
Update products for a catalog
Request example
curl --request PUT \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}/products' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"products":"string"}'
Request body
application/jsonProducts to create.
Path Parameters
The unique identifier of the catalog where the products will be updated.
Was this helpful?
Your feedback helps us improve the docs.
Get Catalogs
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/catalogs' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Get catalog
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
ID of the catalog to get.
Was this helpful?
Your feedback helps us improve the docs.
List products for a catalog
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}/products' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The unique identifier of the catalog whose products are listed.
Query Parameters
Filter by availability.
Filter by brand.
Filter by product condition.
Maximum number of products to return per page.
Opaque token to retrieve the next page of results.
Maximum price (integer, same currency as stored products).
Minimum price (integer, same currency as stored products).
Comma-separated retailer ids to filter by.
Filter products by name or retailer id (substring match).
Comma-separated sync statuses to filter by.
Was this helpful?
Your feedback helps us improve the docs.
Delete catalog
Request example
curl --request DELETE \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
ID of the catalog to delete.
Was this helpful?
Your feedback helps us improve the docs.
Mark products for deletion
Request example
curl --request PATCH \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}/products/mark-for-deletion' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"retailer_ids":"string"}'
Request body
application/jsonList of retailer IDs identifying the catalog products that should be marked for deletion. At least one ID is required.
Path Parameters
The unique identifier of the catalog that contains the products you want to mark for deletion. Must be a valid UUID.
Was this helpful?
Your feedback helps us improve the docs.
Unlink a catalog from a WABA
Request example
curl --request PATCH \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}/unlink-catalog' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
ID of the catalog to unlink from its linked WABA.
Was this helpful?
Your feedback helps us improve the docs.
Publish a catalog
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/engagement/catalogs/{catalog_id}/publish' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"waba_id":"string"}'
Request body
application/jsonThe ID of the WABA used to retrieve the WABA info.
Path Parameters
ID of the catalog to publish.
Was this helpful?
Your feedback helps us improve the docs.
WA Contacts
Add, search and manage your customers (end users) in a single place.
Create contact property
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/contact-properties' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"name":"string","type":"string"}'
Request body
application/x-www-form-urlencodedstring
int
boolean
date
email
enum
Indicates the type of the custom property.
Indicates the name of the custom property.
value1
value2
value3
Required only if type is enum. Add the list of personalized values separated by comma, example: value1, value2, value3.
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.
Was this helpful?
Your feedback helps us improve the docs.
Create contact
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/contacts' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"external_id":"string","name":"string","phone_number":"string"}'
Request body
application/x-www-form-urlencodedIndicates the Phone number of the contact that you want to register. Must include the country code (e.g., +570000000000). Required if external_id is not provided.
Indicates the name of the contact that you want to register.
Indicates the external identifier defined by you for the contact (e.g., usr_12345). Required if phone_number is not provided.
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).
Indicates the email address you want to register (e.g., email@yourdomain.com).
Was this helpful?
Your feedback helps us improve the docs.
Update contact
Request example
curl --request PUT \
--url 'https://api.identity.truora.com/v1/contacts/{contact_id}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedIndicates the name of the contact that you want to update.
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).
Indicates the email address you want to update (e.g., email@yourdomain.com).
Path Parameters
The identifier of the contact to update. By default, the value is interpreted as a contact_id. To use a different identifier, provide the key_type query parameter (e.g., phone_number or external_id).
Query Parameters
Specifies which identifier is used to update the contact. Defaults to contact_id if not provided. Supported values: contact_id, phone_number, external_id.
Was this helpful?
Your feedback helps us improve the docs.
Get contact properties
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/contact-properties' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Get all contacts
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/contacts' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Get contact
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/contacts/{contact_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The identifier used to retrieve the contact. By default, it is treated as a contact_id. To use a different identifier, provide the key_type query parameter (e.g., phone_number or external_id).
Query Parameters
Specifies which identifier is used to retrieve the contact. Defaults to contact_id if not provided. Supported values: contact_id, phone_number, external_id.
Was this helpful?
Your feedback helps us improve the docs.
Delete contact
Request example
curl --request DELETE \
--url 'https://api.identity.truora.com/v1/contacts/{contact_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The unique identifier of the contact to delete.
Was this helpful?
Your feedback helps us improve the docs.
DI Processes
Configure and order the validations you want to do in your process. Try and start validating your users by sending a link.
Send Process Link
This request sends a short link to the user’s phone number via the specified messaging channel and in the specified language. The link directs the user to a secure URL to perform or continue their identity validation process.
Header Setup:
Set the Truora-API-Key header to the same api_key value used when creating the process_id (via the Create Identity request).
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/send-link' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"lang":"es","message_channel":"whatsapp","phone_country_code":"string","phone_number":"string"}'
Request body
application/x-www-form-urlencodedThe recipient’s phone number, excluding the country code.
The country code for the recipient’s phone number, including the + symbol (e.g., +57 for Colombia). Refer to this list of country codes.
whatsapp
The channel through which the message will be sent.
es
en
pt
The language of the redirection/recovery message.
Path Parameters
The ID of the generated process to perform or continue.
Was this helpful?
Your feedback helps us improve the docs.
Identity Back
Allows stepping back in the identity verification process or retrying the last step.
- If
retry_stepis true, the last step is re-executed with the same expected inputs. - If
retry_stepis false or not provided, the process moves one step back.
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/back' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedIndicates 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.
Path Parameters
The ID of the ongoing process.
Was this helpful?
Your feedback helps us improve the docs.
Feed wallet
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/processes/feed-wallet' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"code":"string"}'
Request body
application/json[Required] Wallet OAuth2 authorization code returned by the wallet sign-up iframe via web_message. The lambda exchanges it for an access token at the wallet’s /oauth2/token endpoint.
Was this helpful?
Your feedback helps us improve the docs.
Create log
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/processes/enqueue-log' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
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 example
curl --request POST \
--url 'https://api.identity.truora.com/v1/processes/{process_id}' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"expected_inputs":"string","step_id":"string","type":"string","verification_id":"string"}'
Request body
application/jsonThe identifier for the verification that the step belongs to.
The type of step being verified.
The identifier for the step being verified.
An array containing the required inputs for the specified step type. Some steps may not require inputs—omit this parameter in such cases.
Path Parameters
The ID of the process being verified.
Was this helpful?
Your feedback helps us improve the docs.
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.
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/processes' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Add Verification
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/verifications' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the dynamic process to append the verification to.
Was this helpful?
Your feedback helps us improve the docs.
Update Identity
process_id, modifying changeable process information such as phone number and device details until the process is complete.Request example
curl --request PUT \
--url 'https://api.identity.truora.com/v1/processes/{process_id}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedPhone number with country code.
Device information in serialized JSON format.
Was this helpful?
Your feedback helps us improve the docs.
Read Variables
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/variables' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the process from which to retrieve the variables.
Was this helpful?
Your feedback helps us improve the docs.
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.
Note: Responses for users with the permission identity.process.read.own are limited to their own processes (those they initiated and those linked to them via configured “own” scope variables).
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Filters processes by a Declined Reason. Multiple declined_reason parameters can be used to filter results by more than one reason.
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.
Filters processes by their failure status, such as expired or pending.
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.
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.
Specifies the starting key value for pagination. Use this parameter after the first query if more results are available for pagination.
Filters processes by their status: pending, failure, or success.
Was this helpful?
Your feedback helps us improve the docs.
Download Process PDF
Retrieves the PDF document for a specified process by its ID.
If the PDF has not been requested before, it is generated first, progressing through:
- 202 Accepted →
"file_status":"requested" - 202 Accepted →
"file_status":"in_progress" - 302 Found * → Redirects to the PDF file when ready
- 200 OK → Returns the file
If the PDF has already been generated, the response immediately returns:
- 302 Found * → Redirects to the PDF file when ready
- 200 OK → Returns the file
Polling: If the file is not ready (202 Accepted), retry until 302 Found or 200 OK.
* 302 Redirect Handling: Most API clients and browsers follow redirects automatically. However, if your API client does not, extract the Location header containing the PDF’s URL and make a GET request to download the file.
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/pdf' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the completed process for which the PDF is requested.
Was this helpful?
Your feedback helps us improve the docs.
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_statusvalues 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.
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/result' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the process for which results are being retrieved.
Was this helpful?
Your feedback helps us improve the docs.
Download Process Video Call Recordings
Retrieves the video call recordings for a specified process by its ID.
If the video call recordings have not been requested before, it is generated first, progressing through:
- 202 Accepted →
"file_status":"requested" - 202 Accepted →
"file_status":"in_progress" - 302 Found * → Redirects to the video call recordings file when ready
- 200 OK → Returns the file
If the video call recordings have already been generated, the response immediately returns:
- 302 Found * → Redirects to the video call recordings file when ready
- 200 OK → Returns the file
Polling: If the file is not ready (202 Accepted), retry until 302 Found or 200 OK.
* 302 Redirect Handling: Most API clients and browsers follow redirects automatically. However, if your API client does not, extract the Location header containing the video call recordings’s URL and make a GET request to download the file.
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}/video-call-recordings' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the completed process for which the video call recordings is requested.
Was this helpful?
Your feedback helps us improve the docs.
Read Identity
Retrieves the current status and detailed results of the specified identity process, including the progress of each step.
Responses for users with the permission identity.process.read.own are limited to their own processes (those they initiated and those linked to them via configured “own” scope variables)
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/processes/{process_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The ID of the process to retrieve.
Was this helpful?
Your feedback helps us improve the docs.
Delete Identity
Request example
curl --request DELETE \
--url 'https://api.identity.truora.com/v1/processes/{process_id}' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
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.
Query user customers
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/customers/query' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Compute profile segment
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/customers/segments/{segment_id}/compute' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The unique identifier of the segment to compute
Was this helpful?
Your feedback helps us improve the docs.
Create profile segment
Request example
curl --request POST \
--url 'https://api.identity.truora.com/v1/customers/segments' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"name":"string","rule":"string"}'
Request body
application/jsonrepresents the JSONLogic rule that defines the segment criteria
represents the name of the segment
represents the description of the segment
Was this helpful?
Your feedback helps us improve the docs.
Update profile segment
Request example
curl --request PUT \
--url 'https://api.identity.truora.com/v1/customers/segments/{segment_id}' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedrepresents the rule that defines the segment criteria
represents the description of the segment
represents the name of the segment
Path Parameters
The segment ID is an automatically generated ID and is unique for each segment
Was this helpful?
Your feedback helps us improve the docs.
List available decision variables
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/decision-variables/available' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Filter decision variables by active status (true or false)
Filter decision variables by category. Multiple values can be provided (e.g., profile, profile_reliability)
Filter decision variables by ID. Multiple values can be provided
Filter decision variables by level. Multiple values can be provided (integer values)
Filter decision variables by name. Multiple values can be provided
Filter decision variables by product. Multiple values can be provided (e.g., process, check)
Search term to filter decision variables by name or description
Start key value for pagination to continue from a specific point
Filter decision variables by data type. Multiple values can be provided (e.g., boolean, string, number, date)
Was this helpful?
Your feedback helps us improve the docs.
Get Customer Waba Lines
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/{customer_id}/waba-lines' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The customer ID is an automatically generated ID and is unique for each customer
Was this helpful?
Your feedback helps us improve the docs.
List decision variables for user customers
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/decision-variables' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Filter decision variables by categories. Multiple values can be provided
End date for filtering decision variables by date range (format: YYYY-MM-DD)
Filter decision variables by specific names. Multiple values can be provided
Search term to filter decision variables by text content
Start date for filtering decision variables by date range (format: YYYY-MM-DD)
Start key value for pagination to continue from a specific point
Was this helpful?
Your feedback helps us improve the docs.
List Customers
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
When true, returns only basic profile fields (id, name, country, phone, email, document_number, document_type, birthday, document_issue_date, gender) for faster responses.
Filter the list of customers by document-id, email, name and phone number
When used with search and basic_info=true, specifies the exact field to search in. Allowed values: document_id, email, phone_number. Uses direct equality match instead of regex for faster results.
When true, expects a single profile match from the search filter.
Start key value for the pagination.
Was this helpful?
Your feedback helps us improve the docs.
Get Customer Transaction
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/{customer_id}/transactions/{transaction_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The customer ID is an automatically generated ID and is unique for each customer
The transaction ID is the unique identifier of the transaction.
Was this helpful?
Your feedback helps us improve the docs.
List profile segments
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/segments' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
Maximum number of segments to return (default: 20, max: 100)
Text used to filter segments by name
Pagination token to get the next page of results
Was this helpful?
Your feedback helps us improve the docs.
List Customers Transactions
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/{customer_id}/transactions' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The customer ID is an automatically generated ID and is unique for each customer
Query Parameters
Allowed: check | process | validation | engagement-chat | profile
Product that originated the transaction.
Start key value for the pagination.
Was this helpful?
Your feedback helps us improve the docs.
Get profile segment
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/segments/{segment_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The segment ID is an automatically generated ID and is unique for each segment
Was this helpful?
Your feedback helps us improve the docs.
Get Customer Tag History
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/{customer_id}/tag-history' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The customer ID is an automatically generated ID and is unique for each customer
Was this helpful?
Your feedback helps us improve the docs.
Get Customer
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/{customer_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The customer ID is an automatically generated ID and is unique for each customer
Was this helpful?
Your feedback helps us improve the docs.
List segment profiles
Request example
curl --request GET \
--url 'https://api.identity.truora.com/v1/customers/segments/{segment_id}/profiles' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The unique identifier of the segment
Query Parameters
Pagination cursor for the next or previous page of profiles
Was this helpful?
Your feedback helps us improve the docs.
Delete profile segment
Request example
curl --request DELETE \
--url 'https://api.identity.truora.com/v1/customers/segments/{segment_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The segment ID is an automatically generated ID and is unique for each segment
Was this helpful?
Your feedback helps us improve the docs.
Truora Pass
Truora Pass lets your users verify their identity once and reuse it to sign in across apps. It is a standard OAuth 2.0 / OpenID Connect provider: your application redirects the user to Truora Pass to authenticate and consent, exchanges the resulting authorization code for tokens, and reads the user’s verified identity claims from the UserInfo endpoint.
Start with the Getting started guide, register your application following Registering your application, and see the Scopes reference for scope details. Detailed flow guides: Authorization Code flow, Embedded SDK, CIBA flow, Refresh tokens, UserInfo and claims, Verification results and Errors and troubleshooting.
The authorization page (GET /authorize) is served from https://pass.truora.com; every JSON/form API below is served from the base URL https://api.pass.truora.com. Truora Pass does not publish an OIDC discovery document, JWKS, or a token revocation endpoint — the endpoints below are the complete public surface.
Scopes
Request scopes space-delimited on /authorize and /bc-authorize. Every requested scope must be registered for your application. Scopes marked sensitive require a binding_message on CIBA requests; restricted scopes are enabled per client by Truora.
| Scope | UserInfo claims it unlocks | Notes |
|---|---|---|
openid | sub; enables the id_token | |
email | email, email_verified | |
phone | phone_number, phone_number_verified | |
profile | name, first_name, last_name, gender, birthdate, nationality, updated_at | |
identity | identity_verified, verification_level, given_name, family_name, birthdate, nationality, document_number, document_type, issuing_authority, is_risky, was_manually_reviewed, plus document_expired and expiration_date when the primary document is expired | |
documents | documents array | sensitive; equivalent to document:ALL:ALL |
document:<COUNTRY>:<TYPE> | documents filtered to the country/type | granular form — <COUNTRY> is lowercase ISO 3166-1 alpha-2 or ALL, <TYPE> a known document type or ALL |
age | age_verified; with a birthdate on file: is_minor, age_range, birthdate | |
address | address object | |
background | trust_level, background_verified, verification_badges, manual_verification_status | sensitive; refreshes an in-progress background check before responding |
biometric | face_enrolled, last_face_verification_date, liveness_check_passed, face_match_confidence, quality_level, verification_method | |
verification | verification_status, verification_date, verification_methods | |
contact | email, email_verified, phone_number, phone_number_verified, preferred_communication_method | |
nationality | nationality | |
documents:images, biometric:image | — (image delivery; no UserInfo claims today) | sensitive |
approval:read | — | gates GET /oauth2/approval-outcome |
validations:write | — | sensitive, restricted; gates POST /oauth2/validations |
google:drive:readonly, google:docs:readonly, google:sheets:readonly, google:gmail:readonly, google:calendar:readonly | google_tokens / google_tokens_status | restricted; Google delegated access via the user's consent |
Detailed aliases (profile:detailed, identity:basic, identity:full, document:passport, age:exact, address:full, background:summary, verification:detailed, contact:full, biometric:status, …) are accepted and normalized to the flat scopes above.
Base URL
https://api.pass.truora.com
Tokens
Back-channel token endpoint. A single endpoint multiplexed by grant_type: exchange an authorization code for tokens, rotate a refresh token, or poll a CIBA (decoupled) authorization request. Requests carry your client_secret and must always run server-to-server — never in the browser.
Token lifetimes. Authorization codes are single-use and expire after 10 minutes. Access tokens live 60 minutes. Refresh tokens are single-use and rotate on every redemption with a 365-day sliding lifetime — reusing an already-used refresh token revokes the whole token family.
ID token. Issued only when the openid scope is granted (authorization-code and CIBA grants; never on refresh). It is a JWT that expires after 5 minutes, with claims:
| Claim | Value |
|---|---|
sub | The user's stable Truora Pass identifier |
iss | https://pass.truora.com |
aud | [<your client_id>] |
iat, exp | Issued-at / expiry (5 minutes) |
jti | Unique token ID |
auth_time | When the user authenticated (when available) |
acr | Authentication level achieved (see Authorization) |
amr | Authentication methods used (RFC 8176) |
at_hash | CIBA only — left-half SHA-256 hash of the access token |
urn:openid:params:jwt:claim:auth_req_id | CIBA only — the authorization request ID |
Exchange a code, rotate a refresh token, or poll CIBA
Server-to-server only — this request carries your client_secret and must never run in the browser.
Grant authorization_code (JSON): exchange the single-use code from the callback for tokens. Send grant_type, code, client_id, client_secret and redirect_uri (must match the authorize request). Returns access_token, token_type (Bearer), expires_in (3600), scope, a refresh_token, and an id_token when the openid scope was granted (expires after 5 minutes).
Grant refresh_token (JSON): rotate a refresh token without re-authorizing the user. Send grant_type, refresh_token, client_id, client_secret, and optionally scope to down-scope (a subset of the originally granted scopes). Refresh tokens are single-use and rotate on every call (365-day sliding lifetime): the response contains a NEW refresh_token — replace the stored one. Reusing an already-used token revokes the whole token family. No id_token is returned.
Grant urn:openid:params:grant-type:ciba (form-encoded): poll for tokens after a backchannel authorization request. Send grant_type, auth_req_id, client_id and client_secret, waiting at least interval seconds between polls. While the user has not decided the response is 400 authorization_pending; once approved it returns tokens (no refresh_token for this grant).
Request example
curl --request POST \
--url 'https://api.pass.truora.com/v1/oauth2/token' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"auth_req_id":"string","client_id":"string","client_secret":"string","grant_type":"urn:openid:params:grant-type:ciba"}'
Request body
application/jsonauthorization_code
refresh_token
authorization_code or refresh_token.
Your application’s client secret.
Your application’s client ID.
(refresh_token grant, optional) Space-delimited subset of the originally granted scopes to down-scope the new access token.
(authorization_code grant) The code from the callback. Single-use, expires after 10 minutes.
(authorization_code grant) Must match the redirect_uri used on the authorize request.
(refresh_token grant) The most recently issued refresh token.
Request body
application/x-www-form-urlencodedurn:openid:params:grant-type:ciba
urn:openid:params:grant-type:ciba.
Your application’s client secret.
Your application’s client ID.
The authorization request identifier returned by POST /v1/oauth2/bc-authorize.
Was this helpful?
Your feedback helps us improve the docs.
Backchannel (CIBA)
Decoupled authorization (OpenID CIBA). Start an authorization request for a user identified by email; Truora Pass delivers an approval link to the user’s verified phone over WhatsApp, and your backend polls the token endpoint until the user approves or declines. Requires the CIBA grant to be enabled for your application — contact Truora.
Beyond plain authorization, CIBA requests can carry rich authorization_details (RFC 9396) for approval-style consent (the user reviews and approves a concrete action, optionally filling a form). Use POST /v1/oauth2/approval-attachments to stage files shown on the approval screen, and GET /v1/oauth2/approval-outcome to read the decision and any submitted form data afterwards.
Stage an approval attachment
Stages a file to be shown on a CIBA approval screen (e.g. the contract the user is asked to approve). Returns a presigned upload_url — PUT the file bytes there directly; they never pass through Truora Pass. Reference the returned s3_key from the attachments of your authorization_details on the subsequent POST /v1/oauth2/bc-authorize.
The attachment is keyed to the future approver by login_hint (email), so it can be staged before the user has a Truora Pass account. Allowed content types: image/png, image/jpeg, image/gif, image/webp, application/pdf, text/plain, text/markdown, text/csv, application/json (active content is refused). Maximum object size 10 MiB; the upload URL expires after 10 minutes; file_name is sanitized and limited to 200 characters.
Request example
curl --request POST \
--url 'https://api.pass.truora.com/v1/oauth2/approval-attachments' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"client_id":"string","client_secret":"string","content_type":"string","file_name":"string","login_hint":"string"}'
Request body
application/x-www-form-urlencodedEmail of the user who will review the approval.
Display name of the file (sanitized, up to 200 characters). Its extension, when present, must match content_type.
MIME type of the file. Must be on the allow-list above.
Your application’s client secret.
Your application’s client ID.
Was this helpful?
Your feedback helps us improve the docs.
Read an approval outcome
approval:read scope; the approval must belong to your application.Request example
curl --request GET \
--url 'https://api.pass.truora.com/v1/oauth2/approval-outcome?auth_req_id={auth_req_id}' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
The authorization request ID returned by POST /v1/oauth2/bc-authorize.
Was this helpful?
Your feedback helps us improve the docs.
UserInfo
Read the user’s verified identity claims. The response is a JSON map whose keys depend on the scopes granted to the access token — see the Scopes table above for the full claim-to-scope map.
Read the user's verified identity claims
Returns a JSON map of the user’s verified identity claims for the scopes granted to the access token. sub is always present; empty claims are omitted. When the background scope is granted, background data is refreshed before responding. See the Scopes table above for the complete claim-to-scope map.
When the token carries Google-delegated scopes (google:*), the response additionally includes google_tokens (access_token, refresh_token, expires_at, scopes) or google_tokens_status (re_consent_required when the user must re-consent).
Send the access token as a Bearer token: Authorization: Bearer <access_token>.
Request example
curl --request GET \
--url 'https://api.pass.truora.com/v1/oauth2/userinfo' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Validations (restricted)
Append-only write of externally performed identity validations into a user’s Truora Pass profile. Restricted — available only to client applications allow-listed by Truora, with the sensitive validations:write scope granted.
Write identity validations
Appends externally performed identity validations (document and/or face) to the user’s Truora Pass profile. Restricted — your client application must be allow-listed by Truora and the access token must carry the sensitive validations:write scope.
Send 1 to 100 items. Each item is type: document (requires the document object with at least document_number and document_type) or type: face (requires the face object). Providing a process_id makes the write idempotent: replaying a request whose process_ids were all already recorded returns 200 with an empty list instead of creating duplicates.
Request example
curl --request POST \
--url 'https://api.pass.truora.com/v1/oauth2/validations' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/json' \
--data '{"validations":"string"}'
Request body
application/json1–100 validation items. Each item has type (document or face), resource_id (required), verified (boolean), and optionally resource_url, process_id, plus the type-specific document (document_number, document_type, country, first_name, last_name, date_of_birth, expiration_date, front_image, reverse_image) or face (face_photo) object.
Was this helpful?
Your feedback helps us improve the docs.
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.
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
Request example
curl --request POST \
--url 'https://api.validations.truora.com/v1/accounts' \
--header 'Truora-API-Key: {api_key}'
Request body
application/x-www-form-urlencodedEmail address of the person associated with the account.
Facebook username of the person associated with the account.
First name of the person associated with the account.
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.
Document number of the person associated with the account.
national-id
identity-card
foreign-id
passport
Type of document for the person associated with the account.
Last name of the person associated with the account.
Phone number of the person associated with the account.
X (formerly Twitter) username of the person associated with the account.
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.
Issue date of the person’s document, formatted in RFC3339 (e.g., 2000-05-24).
Was this helpful?
Your feedback helps us improve the docs.
List Validation Accounts
start_key query parameter. The response includes a list of each validation account and its details.Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/accounts' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Start key value for the pagination.
Was this helpful?
Your feedback helps us improve the docs.
Get Validation Account
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/accounts/{account_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
ID of the account to be retrieved.
Was this helpful?
Your feedback helps us improve the docs.
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.
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/accounts/{account_id}/enrollments' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The account ID for which the enrollments will be retrieved.
Was this helpful?
Your feedback helps us improve the docs.
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:
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/accounts/{account_id}/validations' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The account ID linked with the validations.
Was this helpful?
Your feedback helps us improve the docs.
Get Validation from Account
Note: This request will soon be deprecated. Please use the Get Validation (GET /v1/validations/{validation_id}) request instead.
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:
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/accounts/{account_id}/validations/{validation_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique identifier of the account associated with the validation.
Unique identifier of the validation.
Query Parameters
If set to true, retrieves additional validation details, including links to user-uploaded files that remain valid for 15 minutes.
Was this helpful?
Your feedback helps us improve the docs.
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
Request example
curl --request POST \
--url 'https://api.validations.truora.com/v1/enrollments' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"type":"face-recognition","user_authorized":true}'
Request body
application/x-www-form-urlencodedface-recognition
email-verification
phone-verification
face-search
Indicates the type of validation to be performed along with this enrollment.
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.
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.
[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
[Required for phone-verification] Phone number to be associated with the validation account on successful validation. Must include the country code (e.g., +57300XXXXXXX).
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.
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.
[Required for email-verification] Email to be associated with the user account.
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
Validation account ID. If left empty, a new validation account will be created
Was this helpful?
Your feedback helps us improve the docs.
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.
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/accounts/{account_id}/enrollments' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The account ID for which the enrollments will be retrieved.
Was this helpful?
Your feedback helps us improve the docs.
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.
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/enrollments/{enrollment_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Enrollment ID to search.
Was this helpful?
Your feedback helps us improve the docs.
Delete enrollment
Request example
curl --request DELETE \
--url 'https://api.validations.truora.com/v1/enrollments/{enrollment_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Enrollment ID to be removed from the client’s account.
Was this helpful?
Your feedback helps us improve the docs.
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.
Create Validation
Request example
curl --request POST \
--url 'https://api.validations.truora.com/v1/validations' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"account_id":"string","type":"document-validation","user_authorized":true}'
Request body
application/x-www-form-urlencodedThis 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.
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-validation
face-recognition
email-verification
phone-verification
face-search
Indicates the type of validation to be performed.
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.
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).
en
es
pt-BR
[Required for phone-verification] Language used to perform the validation via the selected verification channel.
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.
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.
es
en
For email-verification, specifies the language of the email that the final user receives.
[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 | SV | 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
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.
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.
[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.
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.
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.
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.
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.
Was this helpful?
Your feedback helps us improve the docs.
Perform validation
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 example
curl --request POST \
--url 'https://api.validations.truora.com/v1/validations/{validation_id}' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"token":"string","type":"email-verification"}'
Request body
application/x-www-form-urlencodedemail-verification
phone-verification
Indicates the type of validation to be performed.
The validation code sent to the user’s email or phone (via SMS, call, or WhatsApp) for verification.
Path Parameters
ID of the validation to be performed.
Was this helpful?
Your feedback helps us improve the docs.
Restores a previously deleted validation and its associated data
Request example
curl --request POST \
--url 'https://api.validations.truora.com/v1/validations/{validation_id}/restore' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique ID of the validation record to restore
Was this helpful?
Your feedback helps us improve the docs.
File Upload
Request example
curl --request PUT \
--url 'https://api.validations.truora.com{file_upload_url}' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: ' \
--data '{"file":"string"}'
Request body
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.
Was this helpful?
Your feedback helps us improve the docs.
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:
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/accounts/{account_id}/validations' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
The account ID linked with the validations.
Was this helpful?
Your feedback helps us improve the docs.
Get Validation from Account
Note: This request will soon be deprecated. Please use the Get Validation (GET /v1/validations/{validation_id}) request instead.
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:
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/accounts/{account_id}/validations/{validation_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique identifier of the account associated with the validation.
Unique identifier of the validation.
Query Parameters
If set to true, retrieves additional validation details, including links to user-uploaded files that remain valid for 15 minutes.
Was this helpful?
Your feedback helps us improve the docs.
Get Document Selection
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/config/document-selection' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Get Document Infographic
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/document-infographic' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
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:
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/validations' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
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:
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/validations/{validation_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique identifier of the validation.
Query Parameters
If set to true, retrieves additional validation details, including links to user-uploaded files that remain valid for 15 minutes.
Was this helpful?
Your feedback helps us improve the docs.
Deletes a validation and all its associated data
Request example
curl --request DELETE \
--url 'https://api.validations.truora.com/v1/validations/{validation_id}' \
--header 'Truora-API-Key: {api_key}'
Path Parameters
Unique ID of the validation record
Was this helpful?
Your feedback helps us improve the docs.
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.
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 example
curl --request PUT \
--url 'https://api.validations.truora.com/v1/config' \
--header 'Truora-API-Key: {api_key}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data '{"validator":"face-recognition"}'
Request body
application/x-www-form-urlencodedface-recognition
email-verification
phone-verification
document-validation
Validator to be configured.
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.
The time, in seconds, users will have to complete the validation.
- Default: 300 (5 minutes) for all validators.
- Max: 600 (10 minutes) for
phone-verificationandemail-verification;
21600 (6 hours) fordocument-validationandface-recognition.
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.
enabled
disabled
Checks for any alterations or edits in the image of the validated document in document-validation.
enabled
disabled
Analyzes if the image used for validation is a photograph of a photograph of a document in document-validation.
CO
CL
MX
PE
BR
SV
ALL
Country for which the document-validation configuration will be updated.
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.
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.
Custom main title text in the email-verification validator email. For details, language options and default values, see the Email Validator Config guide.
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).
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.
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-verificationandphone-verification: The default value is 2 retries, with a maximum of 4 retries.
enabled
disabled
Analyzes if the image used for document-validation is a photocopy of a document.
Custom subject text in the email-verification validator email. For details, language options and default values, see the Email Validator Config guide.
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: Forface-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.
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.
enabled
disabled
Analyzes the extracted data from the document for consistency in document-validation, such as date of birth and document number.
enabled
disabled
Validates the extracted identification number against government databases in document-validation.
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.
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.
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.
Was this helpful?
Your feedback helps us improve the docs.
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.
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/config' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.
Delete Config
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.Request example
curl --request DELETE \
--url 'https://api.validations.truora.com/v1/config?validator={validator}' \
--header 'Truora-API-Key: {api_key}'
Query Parameters
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.
Allowed: document-validation | face-recognition | email-verification | phone-verification
Name of the validator’s config to be deleted.
Was this helpful?
Your feedback helps us improve the docs.
Status
Status lets you check the current state of our services in real time.
Get status
Request example
curl --request GET \
--url 'https://api.validations.truora.com/v1/status' \
--header 'Truora-API-Key: {api_key}'
Was this helpful?
Your feedback helps us improve the docs.