Verify Identity Steps via API

This guide explains how to use Truora’s API to verify each step in an identity verification process, primarily using the Verify Identity endpoint along with other supporting endpoints. This API allows you to provide the required inputs for each step in the processes of your flows, enabling you to build a custom front-end instead of using Truora’s ready-to-use solution.

Prerequisites

  1. Truora Account: If you don’t already have one, learn how to Set up a Truora account.
  2. Truora API-Key: This key grants access to our services. If you don’t have one already go to Create Truora API-Key.
  3. A created Web Flows: Understand and have at least one flow already built. Learn how to Create a Web Flow in Truora.
  4. Basic Understanding of Validators: Familiarity with Digital Identity Validators is helpful. If needed, refer to the Validations Workflow section in the DI - Validators API. documentation.

Disclaimer:

  • This guide involves making API requests, handling authentication, and interpreting JSON responses. To follow along effectively, we recommend involving a developer or someone with technical expertise.

Need Help?

  • The examples in this guide cover typical use cases. If you require assistance with a specific integration scenario, please contact our Support Team.

The Example Flow

The following is a simple Web Flow that includes an Email Validator and a Document + Face Validator block. This flow serves as the example used throughout this guide for all verification steps.

Example test flow


Create Identity endpoint

To create and start a verification process for a user, use the Create Identity endpoint. Before making this request, you must:

  • Have a flow already created.
  • Generate a temporary api_key linked to the corresponding flow_id.

Follow the Web Integration Token Guide to complete this setup.

Important: A unique api_key must be generated for each identity verification process, even if performed by the same user.

Request setup:

  1. Create a POST request to the endpoint https://api.identity.truora.com/v1/processes/
  2. Set the Header
    • Truora-API-Key: Enter the value of the generated token (api_key) of the instructions above.

Send the request. The response will include a process_id, which is required for subsequent API calls, and the key details of each step, including step_id, verification_id, type, expected_inputs, and files_upload_urls.

If everything is set correctly, you should receive a response similar to the following:

POST
/v1/processes/
                {
    "variables": {
        "VRF23a26c84_XXXX": {},
        "VRF25790212_XXXX": {},
        "start": {
            "now": {
                "value": "2025-02-05T17:11:13+00:00"
            },
            "process": {
                "id": "IDPb801XXXX"
            }
        }
    },
    "update_date": "2025-02-05T17:11:13.586034779Z",
    "creation_date": "2025-02-05T17:11:13.566551078Z",
    "config": {
        "allow_native_camera": true,
        "continue_flow_in_new_device": true,
        "enable_desktop_flow": true,
        "end_business_hours": "2021-01-01T00:00:00Z",
        "follow_up_delay": 120,
        "follow_up_message": "Tienes un proceso activo en curso",
        "lang": "en",
        "messages": {},
        "start_business_hours": "2021-01-01T13:00:00Z",
        "time_to_live": 120,
        "hide_internal_manual_review": false
    },
    "theme": {},
    "ab_testing_config": {
        "name": "ABTestingFeedback",
        "experiments": [
            {
                "views": {
                    "TakeDocumentPhoto": "TakeDocumentPhotoATest"
                },
                "name": "A",
                "weight": 50
            },
            {
                "views": {
                    "TakeDocumentPhoto": "TakeDocumentPhotoBTest"
                },
                "name": "B",
                "weight": 50
            }
        ]
    },
    "status": "pending",
    "account_id": "demo.test.account",
    "created_via": "unknown",
    "ab_experiment": "B",
    "process_id": "IDPb801XXXX",
    "ip_address": "186.XXX.XXX.XXX",
    "client_id": "TCI8abXXXX",
    "country": "ALL",
    "redirect_url": "https://dev.truora.com/index.html",
    "flow_id": "IPF273XXXX",
    "current_step_type": "enter_email",
    "steps": [
        {
            "step_id": "IPSb322XXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email",
            "verification_output": null,
            "config": {
                "retries": 3,
                "timeout": 0,
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "email",
                    "value": "",
                    "name": "email",
                    "placeholder": "Email",
                    "description": "Ingresa tu correo electrónico, enviaremos un código de seguridad.",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSc95bXXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email_verification_code",
            "verification_output": null,
            "config": {
                "retries": 3,
                "timeout": 0,
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "token",
                    "value": "",
                    "name": "token",
                    "placeholder": "Enter the verification code",
                    "description": "Ingresa el código que hemos enviado a tu correo.",
                    "length": 6,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSc4cdXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_document_type",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "foreign-id"
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "select",
                    "value": "ALL",
                    "name": "country",
                    "placeholder": "Enter the country",
                    "description": "What is the country of your identification document?",
                    "length": 0,
                    "read_only": false
                },
                {
                    "type": "select",
                    "value": "",
                    "name": "document_type",
                    "placeholder": "Select the type of document",
                    "description": "What is the type of your identification document?",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSb105XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "take_document_photo",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": [
                {
                    "name": "document_front",
                    "url": "",
                    "description": "Envía una foto de *la parte de adelante* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸"
                },
                {
                    "name": "document_back",
                    "url": "",
                    "description": "Envía una foto de *la parte de atrás* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸"
                }
            ],
            "remaining_retries": 2,
            "async_step": true
        },
        {
            "step_id": "IPS01abXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_photo_liveness",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSe55fXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_video_liveness",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPS31b9XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_face_verification_liveness",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "hidden",
                    "value": "",
                    "name": "actions_face_liveness",
                    "placeholder": "",
                    "description": "",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": [
                {
                    "name": "face_video",
                    "url": "",
                    "description": "Ahora envía un video para validar tu identidad."
                }
            ],
            "remaining_retries": 0,
            "async_step": true
        }
    ],
    "identity_verification_names": [
        "email_verification",
        "document_verification_with_liveness"
    ],
    "current_step_index": 0,
    "time_to_live": 120
}
            

Extract the process_id from the response for the next steps.

Ready Identity endpoint

The Ready Identity endpoint provides step details and progression tracking for a specific process. The response includes the steps section, allowing you to:

  • Determine the number of steps in the process, each identified by a unique step_id.
  • Retrieve key details for verifying each step, including step_id, verification_id, type, expected_inputs, and files_upload_urls.
    • The expected_inputs object specifies the required data to verify the step.
  • Track step progression by checking current_step_data and verification_output.
    • After making a Verify Identity request for a step, poll the Read Identity endpoint to confirm the process has moved to the next step before proceeding with its verification.

Retrieving process steps

  1. Create a GET request to the endpoint https://api.identity.truora.com/v1/processes/{process_id}.
    • Replace the Path Parameter process_id with the ID obtained from the Create Identity request.
  2. Set the Headers
    • Truora-API-Key: Enter your permanent Truora API Key (not the temporary api_key from the previous step).

Upon sending the request, you’ll receive a response similar to this:

GET
/v1/processes/{process_id}
                {
    "current_step_data": {
        "type": "enter_email",
        "verification_output": null,
        "config": {
            "retries": 3,
            "timeout": 0,
            "attached_document_ids": null,
            "attached_documents_variables": null,
            "form_message_text": "",
            "form_message_button_text": ""
        },
        "expected_inputs": [
            {
                "type": "email",
                "value": "",
                "name": "email",
                "placeholder": "Email",
                "description": "Ingresa tu correo electrónico, enviaremos un código de seguridad.",
                "length": 0,
                "read_only": false
            }
        ],
        "async_step": false,
        "description": "",
        "retry_status": "unavailable",
        "retry_reason": ""
    },
    "variables": {
        "VRF23a26c84_XXXX": {},
        "VRF25790212_XXXX": {},
        "start": {
            "now": {
                "value": "2025-02-05T17:11:13+00:00"
            },
            "process": {
                "id": "IDPb801XXXX"
            }
        }
    },
    "update_date": "2025-02-05T17:11:13.586034779Z",
    "creation_date": "2025-02-05T17:11:13.566551078Z",
    "config": {
        "allow_native_camera": true,
        "continue_flow_in_new_device": true,
        "enable_desktop_flow": true,
        "end_business_hours": "2021-01-01T00:00:00Z",
        "follow_up_delay": 120,
        "follow_up_message": "Tienes un proceso activo en curso",
        "lang": "en",
        "messages": {},
        "start_business_hours": "2021-01-01T13:00:00Z",
        "time_to_live": 120,
        "hide_internal_manual_review": false
    },
    "theme": {},
    "ab_testing_config": {
        "name": "ABTestingFeedback",
        "experiments": [
            {
                "views": {
                    "TakeDocumentPhoto": "TakeDocumentPhotoATest"
                },
                "name": "A",
                "weight": 50
            },
            {
                "views": {
                    "TakeDocumentPhoto": "TakeDocumentPhotoBTest"
                },
                "name": "B",
                "weight": 50
            }
        ]
    },
    "status": "pending",
    "account_id": "demo.test.account",
    "created_via": "unknown",
    "ab_experiment": "B",
    "process_id": "IDPb801XXXX",
    "ip_address": "186.XXX.XXX.XXX",
    "client_id": "TCI8abXXXX",
    "country": "ALL",
    "redirect_url": "https://dev.truora.com/index.html",
    "flow_id": "IPF273XXXX",
    "current_step_type": "enter_email",
    "steps": [
        {
            "step_id": "IPSb322XXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email",
            "verification_output": null,
            "config": {
                "retries": 3,
                "timeout": 0,
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "email",
                    "value": "",
                    "name": "email",
                    "placeholder": "Email",
                    "description": "Ingresa tu correo electrónico, enviaremos un código de seguridad.",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSc95bXXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email_verification_code",
            "verification_output": null,
            "config": {
                "retries": 3,
                "timeout": 0,
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "token",
                    "value": "",
                    "name": "token",
                    "placeholder": "Enter the verification code",
                    "description": "Ingresa el código que hemos enviado a tu correo.",
                    "length": 6,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSc4cdXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_document_type",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "...": "..."
                            }
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "select",
                    "value": "ALL",
                    "name": "country",
                    "placeholder": "Enter the country",
                    "description": "What is the country of your identification document?",
                    "length": 0,
                    "read_only": false
                },
                {
                    "type": "select",
                    "value": "",
                    "name": "document_type",
                    "placeholder": "Select the type of document",
                    "description": "What is the type of your identification document?",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSb105XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "take_document_photo",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": [
                {
                    "name": "document_front",
                    "url": "",
                    "description": "Envía una foto de *la parte de adelante* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸"
                },
                {
                    "name": "document_back",
                    "url": "",
                    "description": "Envía una foto de *la parte de atrás* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸"
                }
            ],
            "remaining_retries": 2,
            "async_step": true
        },
        {
            "step_id": "IPS01abXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_photo_liveness",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSe55fXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_video_liveness",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPS31b9XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_face_verification_liveness",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "BR",
                        "documents": [
                            {
                                "document_type": "cnh"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                            {
                                "document_type": "national-id"
                            },
                            {
                                "document_type": "..."
                            }
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                            {
                                "document_type": "foreign-id"
                            },
                            {
                                "document_type": "national-id"
                            }
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                            {
                                "document_type": "passport"
                            }
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "hidden",
                    "value": "",
                    "name": "actions_face_liveness",
                    "placeholder": "",
                    "description": "",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": [
                {
                    "name": "face_video",
                    "url": "",
                    "description": "Ahora envía un video para validar tu identidad."
                }
            ],
            "remaining_retries": 0,
            "async_step": true
        }
    ],
    "identity_verification_names": [
        "email_verification",
        "document_verification_with_liveness"
    ],
    "current_step_index": 0,
    "time_to_live": 120
}
            

The response corresponds to the process created with the Example Flow. The following table outlines the step_id, type, expected_inputs, and files_upload_urls for each step in this example process:

Example process steps table

Step ID Type Expected Inputs Files Upload URL
IPSb322XXXX enter_email Yes - See response null
IPSc95bXXXX enter_email_verification_code Yes - See response null
IPSc4cdXXXX enter_document_type Yes - See response null
IPSb105XXXX take_document_photo null document_front, document_back
IPS01abXXXX record_face_photo_liveness null null
IPSe55fXXXX record_face_video_liveness null null
IPS31b9XXXX enter_face_verification_liveness null face_video

Verify Identity endpoint

The Verify Identity endpoint processes each step in the identity verification process. It creates and performs validations based on the information supplied in the request body.

To make the request:

  1. Create a POST request to the endpoint https://api.identity.truora.com/v1/processes/{process_id}.
    • Replace the Path Parameter process_id with the ID obtained from the Create Identity request.
  2. Set the Headers
    • Truora-API-Key: Enter your permanent Truora API Key (not the temporary api_key).
  3. Set the Body
    • Use raw JSON and include the required information for the step being verified.

In the following sections, we’ll go through the validation of each step in our example process, detailing the required request body for each.

Verify Identity - Email Validation

As per the Example process steps table, email validation consists of two steps:

  • enter_email: Requires the user’s email.
  • enter_email_verification_code: Requires the OTP code sent to the user’s email.

1. Enter email

Based on the expected_inputs of this step, set the request body accordingly, providing the step_id, verification_id, the step type, and:

  • Where the name is “email”, set the value to the user’s e-mail address, which was set to “john.doe@demo.com” for our example.

The request body should look similar to the following:

Verify Identity - Body
                {
    "step_id": "IPSb322XXXX",
    "verification_id": "email_validation",
    "type": "enter_email",
    "expected_inputs": [
        {
            "description": "Ingresa tu correo electrónico, enviaremos un código de seguridad.",
            "length": 0,
            "name": "email",
            "placeholder": "Email",
            "read_only": false,
            "type": "email",
            "value": "john.doe@demo.com"
        }
    ]
}
            

Send the Verify Identity request. Upon receiving a 200 - Request successful response, poll the Read Identity endpoint to confirm that the process has moved to the next step.

In the relevant portion of the response:

  • Check the current_step_data to verify that the current step has moved to enter_email_verification_code.
  • Check that the current_step is set to 1.
  • Check the steps object to verify that the enter_email step has a verification_output with a status of success, and includes the validation_type, validation_id and email in outputs.
GET
/v1/processes/{process_id}
                {
    "current_step_data": {
        "type": "enter_email_verification_code",
        "verification_output": null,
        "config": {
            "retries": 3,
            "timeout": 0,
            "attached_document_ids": null,
            "attached_documents_variables": null,
            "form_message_text": "",
            "form_message_button_text": ""
        },
        "expected_inputs": [
            {
                "type": "token",
                "value": "",
                "name": "token",
                "placeholder": "Enter the verification code",
                "description": "Ingresa el código que hemos enviado a tu correo.",
                "length": 6,
                "read_only": false
            }
        ],
        "async_step": false,
        "description": "",
        "retry_status": "unavailable",
        "retry_reason": ""
    },
    "variables": {
    },
    "update_date": "2025-02-05T17:13:28Z",
    "creation_date": "2025-02-05T17:11:13.566551078Z",
    "config": {
    },
    "theme": {},
    "ab_testing_config": {
    },
    "status": "pending",
    "account_id": "demo.test.account",
    "created_via": "unknown",
    "ab_experiment": "B",
    "process_id": "IDPb801XXXX",
    "ip_address": "186.XXX.XXX.XXX",
    "client_id": "TCI8abXXXX",
    "country": "ALL",
    "redirect_url": "https://dev.truora.com/index.html",
    "flow_id": "IPF273XXXX",
    "current_step_type": "enter_email_verification_code",
    "steps": [
        {
            "step_id": "IPSb322XXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email",
            "verification_output": {
                "status": "success",
                "outputs": [
                    {
                        "value": "email-verification",
                        "name": "validation_type"
                    },
                    {
                        "value": "john.doe@demo.com",
                        "name": "email"
                    },
                    {
                        "value": "VLDf6efXXXX",
                        "name": "validation_id"
                    }
                ],
                "media_uploaded": false,
                "step_data_received": true
            },
            "config": {
            },
            "expected_inputs": [
                {
                    "type": "email",
                    "value": "john.doe@demo.com",
                    "name": "email",
                    "placeholder": "Email",
                    "description": "Ingresa tu correo electrónico, enviaremos un código de seguridad.",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSc95bXXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email_verification_code",
            "verification_output": null,
            "config": {
                "retries": 3,
                "timeout": 0,
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "token",
                    "value": "",
                    "name": "token",
                    "placeholder": "Enter the verification code",
                    "description": "Ingresa el código que hemos enviado a tu correo.",
                    "length": 6,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSc4cdXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_document_type",
            "...": "..."
        },
        {
            "step_id": "IPSb105XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "take_document_photo",
            "...": "..."
        },
        {
            "step_id": "IPS01abXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_photo_liveness",
            "...": "..."
        },
        {
            "step_id": "IPSe55fXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_video_liveness",
            "...": "..."
        },
        {
            "step_id": "IPS31b9XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_face_verification_liveness",
            "...": "..."
        }
    ],
    "identity_verification_names": [
        "email_verification",
        "document_verification_with_liveness"
    ],
    "current_step": 1,
    "current_step_index": 0,
    "time_to_live": 120
}
            

2. Enter email verification code

Based on the expected_inputs of this step, set the request body accordingly, providing the step_id, verification_id, the step type, and:

  • Where the name is “token”, set the value to the OTP received in the user’s e-mail, which was set to “654321” for our example.

The request body should look similar to the following:

Verify Identity - Body
                {
    "step_id": "IPSc95bXXXX",
    "verification_id": "email_validation",
    "type": "enter_email_verification_code",
    "expected_inputs": [
        {
            "type": "token",
            "value": "654321",
            "name": "token",
            "placeholder": "Enter the verification code",
            "description": "Ingresa el código que hemos enviado a tu correo.",
            "length": 6,
            "read_only": false
        }
    ]
}
            

Send the Verify Identity request. Upon receiving a 200 - Request successful response, poll the Read Identity endpoint to confirm that the process has moved to the next step.

In the relevant portion of the response:

  • Check the current_step_data to verify that the current step has moved to enter_document_type.
  • Check that the current_step is now 2.
  • Check the steps object to confirm that the enter_email_verification_code step has a verification_output with a status of success and contains the validation_type and validation_id in outputs.
GET
/v1/processes/{process_id}
                {
    "current_step_data": {
        "type": "enter_document_type",
        "verification_output": null,
        "config": {
            "allowed_document_types": [
                {
                    "country": "PE",
                    "documents": [
                    ]
                },
                {
                    "country": "PA",
                    "documents": [
                    ]
                },
                {
                    "country": "MX",
                    "documents": [
                    ]
                },
                {
                    "country": "BR",
                    "documents": [
                    ]
                },
                {
                    "country": "CO",
                    "documents": [
                    ]
                },
                {
                    "country": "VE",
                    "documents": [
                    ]
                },
                {
                    "country": "ALL",
                    "documents": [
                    ]
                },
                {
                    "country": "CL",
                    "documents": [
                    ]
                },
                {
                    "country": "CR",
                    "documents": [
                    ]
                }
            ],
            "enable_file_upload": true,
            "retries": 2,
            "face_threshold": 0.65,
            "timeout": 300,
            "liveness_type": "passive",
            "attached_document_ids": null,
            "attached_documents_variables": null,
            "manual_review": "disabled",
            "recorder": "rt-t",
            "sub_validations": [
                "similarity",
                "passive_liveness",
                "face_search"
            ],
            "form_message_text": "",
            "form_message_button_text": ""
        },
        "expected_inputs": [
            {
                "type": "select",
                "value": "ALL",
                "name": "country",
                "placeholder": "Enter the country",
                "description": "What is the country of your identification document?",
                "length": 0,
                "read_only": false
            },
            {
                "type": "select",
                "value": "",
                "name": "document_type",
                "placeholder": "Select the type of document",
                "description": "What is the type of your identification document?",
                "length": 0,
                "read_only": false
            }
        ],
        "async_step": false,
        "description": "",
        "retry_status": "unavailable",
        "retry_reason": ""
    },
    "variables": {
        "VRF23a26c84_XXXX": {
            "email_validation": {
                "email": "john.doe@demo.com",
                "validation_id": "VLDf6efXXXX"
            }
        },
        "VRF25790212_XXXX": {},
        "start": {
            "now": {
                "value": "2025-02-05T17:11:13+00:00"
            },
            "process": {
                "id": "IDPb801XXXX"
            }
        }
    },
    "update_date": "2025-02-05T17:14:51Z",
    "creation_date": "2025-02-05T17:11:13.566551078Z",
    "config": {
    },
    "theme": {},
    "ab_testing_config": {
        "name": "ABTestingFeedback",
        "experiments": [
        ]
    },
    "status": "pending",
    "account_id": "demo.test.account",
    "created_via": "unknown",
    "ab_experiment": "B",
    "process_id": "IDPb801XXXX",
    "ip_address": "186.XXX.XXX.XXX",
    "client_id": "TCI8abXXXX",
    "country": "ALL",
    "redirect_url": "https://dev.truora.com/index.html",
    "flow_id": "IPF273XXXX",
    "current_step_type": "enter_document_type",
    "steps": [
        {
            "step_id": "IPSb322XXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email",
            "...": "..."
        },
        {
            "step_id": "IPSc95bXXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email_verification_code",
            "verification_output": {
                "status": "success",
                "outputs": [
                    {
                        "value": "email-verification",
                        "name": "validation_type"
                    },
                    {
                        "value": "VLDf6efXXXX",
                        "name": "validation_id"
                    }
                ],
                "media_uploaded": false,
                "step_data_received": true
            },
            "config": {
                "retries": 3,
                "timeout": 0,
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "token",
                    "value": "654321",
                    "name": "token",
                    "placeholder": "Enter the verification code",
                    "description": "Ingresa el código que hemos enviado a tu correo.",
                    "length": 6,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSc4cdXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_document_type",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "select",
                    "value": "ALL",
                    "name": "country",
                    "placeholder": "Enter the country",
                    "description": "What is the country of your identification document?",
                    "length": 0,
                    "read_only": false
                },
                {
                    "type": "select",
                    "value": "",
                    "name": "document_type",
                    "placeholder": "Select the type of document",
                    "description": "What is the type of your identification document?",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSb105XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "take_document_photo",
            "...": "..."
        },
        {
            "step_id": "IPS01abXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_photo_liveness",
            "...": "..."
        },
        {
            "step_id": "IPSe55fXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_video_liveness",
            "...": "..."
        },
        {
            "step_id": "IPS31b9XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_face_verification_liveness",
            "...": "..."
        }
    ],
    "identity_verification_names": [
        "email_verification",
        "document_verification_with_liveness"
    ],
    "current_step": 2,
    "current_step_index": 0,
    "time_to_live": 120
}
            

Verify Identity - Document Validation

As per the Example process steps table, document validation consists of two steps:

  • enter_document_type: Requires the user’s document type and document country. Generates the URLs for the document pictures to be uploaded in the next step.
  • take_document_photo: Requires the photo of the user’s document to be uploaded to the URLs generated in the previous step.

1. Enter Document Type

Based on the expected_inputs of this step, set the request body accordingly, providing the step_id, verification_id, the step type, and:

  • Where the name is “country”, set the value to the two letters of one of the allowed countries (e.g. CO for Colombia).
  • Where the name is “document_type”, set the value to one of the allowed document types (e.g. national-id for National Identification).

You can find a full list of Supported Document Types and Countries.

The request body should look similar to the following:

Verify Identity - Body
                {
    "step_id": "IPSc4cdXXXX",
    "verification_id": "VRF25790212_XXXX",
    "type": "enter_document_type",
    "expected_inputs": [
        {
            "type": "select",
            "value": "CO",
            "name": "country",
            "placeholder": "Enter the country",
            "description": "¿Cuál es el país de tu documento de identificación?",
            "length": 0,
            "read_only": false
        },
        {
            "type": "select",
            "value": "national-id",
            "name": "document_type",
            "placeholder": "Select the type of document",
            "description": "¿Cuál es el tipo de tu documento de identificación?",
            "length": 0,
            "read_only": false
        }
    ]
}
            

Send the Verify Identity request. Upon receiving a 200 - Request successful response, poll the Read Identity endpoint to confirm that the process has moved to the next step.

In the relevant portion of the response:

  • Check the current_step_data to verify that the current step has moved to take_document_photo.
  • Check that the current_step is now 3.
  • Check the steps object to confirm that the enter_document_type step has a verification_output with a status of success including the validation_id and the URLs for the front_document_photo and back_document_photo in outputs.

Important: Extract the front_document_photo and back_document_photo URLs. You’ll need them next to upload the document photos.

GET
/v1/processes/{process_id}
                {
    "current_step_data": {
        "type": "take_document_photo",
        "verification_output": {
            "outputs": [
                {
                    "value": "VLD0c5XXXX",
                    "name": "validation_id"
                },
                {
                    "value": "demo.test.account",
                    "name": "account_id"
                }
            ],
            "media_uploaded": false,
            "step_data_received": false
        },
        "config": {
            "allowed_document_types": [
                {
                    "country": "ALL",
                    "documents": [
                    ]
                },
                {
                    "country": "CL",
                    "documents": [
                    ]
                },
                {
                    "country": "CR",
                    "documents": [
                    ]
                },
                {
                    "country": "MX",
                    "documents": [
                    ]
                },
                {
                    "country": "BR",
                    "documents": [
                    ]
                },
                {
                    "country": "CO",
                    "documents": [
                    ]
                },
                {
                    "country": "VE",
                    "documents": [
                    ]
                },
                {
                    "country": "PE",
                    "documents": [
                    ]
                },
                {
                    "country": "PA",
                    "documents": [
                    ]
                }
            ],
            "enable_file_upload": true,
            "retries": 2,
            "face_threshold": 0.65,
            "timeout": 300,
            "liveness_type": "passive",
            "attached_document_ids": null,
            "attached_documents_variables": null,
            "manual_review": "disabled",
            "recorder": "rt-t",
            "sub_validations": [
                "similarity",
                "passive_liveness",
                "face_search"
            ],
            "form_message_text": "",
            "form_message_button_text": ""
        },
        "expected_inputs": [
            {
                "type": "file",
                "value": "",
                "name": "front_document_photo",
                "placeholder": "",
                "description": "Envía una foto de *la parte de adelante* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸",
                "length": 0,
                "read_only": false,
                "file_upload_url": "https://files.upload-urls.com/docs/front.png"
            },
            {
                "type": "file",
                "value": "",
                "name": "back_document_photo",
                "placeholder": "",
                "description": "Envía una foto de *la parte de atrás* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸",
                "length": 0,
                "read_only": false,
                "file_upload_url": "https://files.upload-urls.com/docs/back.png"
            }
        ],
        "async_step": true,
        "description": "",
        "retry_status": "unavailable",
        "retry_reason": ""
    },
    "variables": {
        "VRF23a26c84_XXXX": {
            "email_validation": {
                "email": "john.doe@demo.com",
                "validation_id": "VLDf6efXXXX"
            }
        },
        "VRF25790212_XXXX": {},
        "start": {
            "now": {
                "value": "2025-02-05T17:11:13+00:00"
            },
            "process": {
                "id": "IDPb801XXXX"
            }
        }
    },
    "update_date": "2025-02-05T17:16:12Z",
    "creation_date": "2025-02-05T17:11:13.566551078Z",
    "config": {
        "allow_native_camera": true,
        "continue_flow_in_new_device": true,
        "enable_desktop_flow": true,
        "end_business_hours": "2021-01-01T00:00:00Z",
        "follow_up_delay": 120,
        "follow_up_message": "Tienes un proceso activo en curso",
        "lang": "en",
        "messages": {},
        "start_business_hours": "2021-01-01T13:00:00Z",
        "time_to_live": 120,
        "hide_internal_manual_review": false
    },
    "theme": {},
    "ab_testing_config": {
        "name": "ABTestingFeedback",
        "experiments": [
        ]
    },
    "status": "pending",
    "account_id": "demo.test.account",
    "created_via": "unknown",
    "ab_experiment": "B",
    "process_id": "IDPb801XXXX",
    "ip_address": "186.168.158.122",
    "client_id": "TCI8abd9a5daf7354d5b5ef5ca2822a2079",
    "country": "ALL",
    "redirect_url": "https://dev.truora.com/index.html",
    "flow_id": "IPF27311c741a14b006874474ee049bb17a",
    "current_step_type": "take_document_photo",
    "steps": [
        {
            "step_id": "IPSb322XXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email",
            "...": "..."
        },
        {
            "step_id": "IPSc95bXXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email_verification_code",
            "...": "..."
        },
        {
            "step_id": "IPSc4cdXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_document_type",
            "verification_output": {
                "status": "success",
                "outputs": [
                    {
                        "value": "VLD0c5XXXX",
                        "name": "validation_id"
                    },
                    {
                        "value": "https://files.upload-urls.com/docs/front.png",
                        "name": "front_document_photo"
                    },
                    {
                        "value": "https://files.upload-urls.com/docs/back.png",
                        "name": "back_document_photo"
                    }
                ],
                "media_uploaded": false,
                "step_data_received": true
            },
            "config": {
                "allowed_document_types": [
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "select",
                    "value": "CO",
                    "name": "country",
                    "placeholder": "Enter the country",
                    "description": "What is the country of your identification document?",
                    "length": 0,
                    "read_only": false
                },
                {
                    "type": "select",
                    "value": "national-id",
                    "name": "document_type",
                    "placeholder": "Select the type of document",
                    "description": "What is the type of your identification document?",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSb105XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "take_document_photo",
            "verification_output": {
                "outputs": [
                    {
                        "value": "VLD0c5XXXX",
                        "name": "validation_id"
                    },
                    {
                        "value": "demo.test.account",
                        "name": "account_id"
                    }
                ],
                "media_uploaded": false,
                "step_data_received": false
            },
            "config": {
                "allowed_document_types": [
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": [
                {
                    "name": "document_front",
                    "url": "https://files.upload-urls.com/docs/front.png",
                    "description": "Envía una foto de *la parte de adelante* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸"
                },
                {
                    "name": "document_back",
                    "url": "https://files.upload-urls.com/docs/back.png",
                    "description": "Envía una foto de *la parte de atrás* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸"
                }
            ],
            "remaining_retries": 2,
            "async_step": true
        },
        {
            "step_id": "IPS01abXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_photo_liveness",
            "...": "..."
        },
        {
            "step_id": "IPSe55fXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_video_liveness",
            "...": "..."
        },
        {
            "step_id": "IPS31b9XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_face_verification_liveness",
            "...": "..."
        }
    ],
    "identity_verification_names": [
        "email_verification",
        "document_verification_with_liveness"
    ],
    "current_step": 3,
    "current_step_index": 0,
    "time_to_live": 120
}
            

2. Take document photo

This step requires submitting document images via a PUT request to the URLs generated in the previous step: document_front and document_back. Ensure the request body is set to Binary to send the image files correctly.

  • PUT {{document_front}}
  • PUT {{document_back}}

Send each of these requests. Once each document photo is successfully uploaded, the response should return 200 - Request successful:

PUT
{{document_front}}
                {
    "code": 10200,
    "http_code": 200,
    "message": "Successfully uploaded"
}
            
PUT
{{document_back}}
                {
    "code": 10200,
    "http_code": 200,
    "message": "Successfully uploaded"
}
            

After both images are successfully uploaded, keep polling the Read Identity endpoint endpoint to confirm the process has moved to the next step.

In the relevant portion of the response:

  • Check the current_step_data to verify that the current step has moved to record_face_photo_liveness.
  • Check that the current_step is now 4.
  • Check the steps object to confirm that the take_document_photo step has a verification_output with a status of success, attachment_status is valid and includes the validation_id and account_id in outputs.
GET
/v1/processes/{process_id}
                {
    "date_of_birth": "1990-11-15T00:00:00Z",
    "current_step_data": {
        "type": "record_face_photo_liveness",
        "verification_output": null,
        "config": {
            "allowed_document_types": [
                {
                    "country": "ALL",
                    "documents": [
                    ]
                },
                {
                    "country": "CL",
                    "documents": [
                    ]
                },
                {
                    "country": "CR",
                    "documents": [
                    ]
                },
                {
                    "country": "PE",
                    "documents": [
                    ]
                },
                {
                    "country": "PA",
                    "documents": [
                    ]
                },
                {
                    "country": "MX",
                    "documents": [
                    ]
                },
                {
                    "country": "BR",
                    "documents": [
                    ]
                },
                {
                    "country": "CO",
                    "documents": [
                    ]
                },
                {
                    "country": "VE",
                    "documents": [
                    ]
                }
            ],
            "enable_file_upload": true,
            "retries": 2,
            "face_threshold": 0.65,
            "timeout": 300,
            "liveness_type": "passive",
            "attached_document_ids": null,
            "attached_documents_variables": null,
            "manual_review": "disabled",
            "recorder": "rt-t",
            "sub_validations": [
                "similarity",
                "passive_liveness",
                "face_search"
            ],
            "form_message_text": "",
            "form_message_button_text": ""
        },
        "expected_inputs": [],
        "async_step": false,
        "description": "",
        "retry_status": "unavailable",
        "retry_reason": ""
    },
    "variables": {
        "VRF23a26c84_XXXX": {
            "email_validation": {
                "email": "john.doe@demo.com",
                "validation_id": "VLDf6efXXXX"
            }
        },
        "VRF25790212_XXXX": {
            "document_validation": {
                "account_id": "demo.test.account",
                "age": "34",
                "attachment_status": "valid",
                "date_of_birth": "1990-11-15",
                "declined_reason": "",
                "document_number": "14XXXXXX",
                "document_type": "national-id",
                "failure_status": "",
                "last_name": "DOE",
                "message": "",
                "name": "JOHN",
                "residence_address": "",
                "status": "success",
                "validation_id": "VLD0c5XXXX"
            }
        },
        "start": {
            "now": {
                "value": "2025-02-05T17:11:13+00:00"
            },
            "process": {
                "id": "IDPb801XXXX"
            }
        }
    },
    "update_date": "2025-02-05T17:18:21Z",
    "creation_date": "2025-02-05T17:11:13.566551078Z",
    "config": {
        "allow_native_camera": true,
        "continue_flow_in_new_device": true,
        "enable_desktop_flow": true,
        "end_business_hours": "2021-01-01T00:00:00Z",
        "follow_up_delay": 120,
        "follow_up_message": "Tienes un proceso activo en curso",
        "lang": "en",
        "messages": {},
        "start_business_hours": "2021-01-01T13:00:00Z",
        "time_to_live": 120,
        "hide_internal_manual_review": false
    },
    "theme": {},
    "ab_testing_config": {
        "name": "ABTestingFeedback",
        "experiments": [
        ]
    },
    "gender": "male",
    "status": "pending",
    "account_id": "demo.test.account",
    "created_via": "unknown",
    "ab_experiment": "B",
    "process_id": "IDPb801XXXX",
    "ip_address": "186.XXX.XXX.XXX",
    "client_id": "TCI8abXXXX",
    "country": "ALL",
    "last_name": "DOE",
    "redirect_url": "https://dev.truora.com/index.html",
    "first_name": "JOHN",
    "document_number": "14XXXXXX",
    "flow_id": "IPF273XXXX",
    "current_step_type": "record_face_photo_liveness",
    "steps": [
        {
            "step_id": "IPSb322XXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email",
            "...": "..."
        },
        {
            "step_id": "IPSc95bXXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email_verification_code",
            "...": "..."
        },
        {
            "step_id": "IPSc4cdXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_document_type",
            "...": "..."
        },
        {
            "step_id": "IPSb105XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "take_document_photo",
            "verification_output": {
                "status": "success",
                "attachment_status": "valid",
                "outputs": [
                    {
                        "value": "VLD0c5XXXX",
                        "name": "validation_id"
                    },
                    {
                        "value": "demo.test.account",
                        "name": "account_id"
                    }
                ],
                "media_uploaded": false,
                "step_data_received": false
            },
            "config": {
                "allowed_document_types": [
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": [
                {
                    "name": "document_front",
                    "url": "https://files.upload-urls.com/docs/front.png",
                    "description": "Envía una foto de *la parte de adelante* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸"
                },
                {
                    "name": "document_back",
                    "url": "https://files.upload-urls.com/docs/back.png",
                    "description": "Envía una foto de *la parte de atrás* de tu documento de identidad: en la imagen puedes ver un ejemplo de cómo debería quedar. 👀\n\nAsegúrate que *los 4 bordes del documento sean visibles*, dejando espacio alrededor.\n\n¡Busca un lugar con luz para que la información sea legible y nítida! 📸"
                }
            ],
            "remaining_retries": 0,
            "async_step": true
        },
        {
            "step_id": "IPS01abXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_photo_liveness",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSe55fXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_video_liveness",
            "...": "..."
        },
        {
            "step_id": "IPS31b9XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_face_verification_liveness",
            "...": "..."
        }
    ],
    "identity_verification_names": [
        "email_verification",
        "document_verification_with_liveness"
    ],
    "current_step": 4,
    "current_step_index": 0,
    "time_to_live": 120
}
            

Verify Identity - Face Validation

As outlined in the Example process steps table, face validation consists of three steps:

  • record_face_photo_liveness: No expected inputs. This step creates an enrollment for the account_id with the face extracted from the document.
  • record_face_video_liveness: No expected inputs. This step creates a validation using the enrollment from the previous step.
  • enter_face_verification_liveness: Requires the user’s face video and performs the validation by comparing the enrolled face from the document with the uploaded video of the face.

1. Record face photo liveness

For this step verification, set the request body by including the step_id, verification_id and the step type. The request body should look similar to the following:

Verify Identity - Body
                {
    "step_id": "IPS01abXXXX",
    "verification_id": "VRF25790212_XXXX",
    "type": "record_face_photo_liveness"
}
            

Send the Verify Identity request. Upon receiving a 200 - Request successful response, poll the Read Identity endpoint to confirm that the process has moved to the next step.

In the relevant portion of the response:

  • Check the current_step_data to verify that the current step has moved to record_face_video_liveness.
  • Check that the current_step is now 5.
  • Check the steps object to confirm that the record_face_photo_liveness step has a verification_output with a status of success and includes the generated enrollment_id in outputs.
GET
/v1/processes/{process_id}
                {
    "date_of_birth": "1990-11-15T00:00:00Z",
    "current_step_data": {
        "type": "record_face_video_liveness",
        "verification_output": null,
        "config": {
            "allowed_document_types": [
                {
                    "country": "VE",
                    "documents": [
                    ]
                },
                {
                    "country": "PE",
                    "documents": [
                    ]
                },
                {
                    "country": "PA",
                    "documents": [
                    ]
                },
                {
                    "country": "MX",
                    "documents": [
                    ]
                },
                {
                    "country": "BR",
                    "documents": [
                    ]
                },
                {
                    "country": "CO",
                    "documents": [
                    ]
                },
                {
                    "country": "ALL",
                    "documents": [
                    ]
                },
                {
                    "country": "CL",
                    "documents": [
                    ]
                },
                {
                    "country": "CR",
                    "documents": [
                    ]
                }
            ],
            "enable_file_upload": true,
            "retries": 2,
            "face_threshold": 0.65,
            "timeout": 300,
            "liveness_type": "passive",
            "attached_document_ids": null,
            "attached_documents_variables": null,
            "manual_review": "disabled",
            "recorder": "rt-t",
            "sub_validations": [
                "similarity",
                "passive_liveness",
                "face_search"
            ],
            "form_message_text": "",
            "form_message_button_text": ""
        },
        "expected_inputs": [],
        "async_step": false,
        "description": "",
        "retry_status": "unavailable",
        "retry_reason": ""
    },
    "variables": {
        "VRF23a26c84_XXXX": {
            "email_validation": {
                "email": "john.doe@demo.com",
                "validation_id": "VLDf6efXXXX"
            }
        },
        "VRF25790212_XXXX": {
            "document_validation": {
                "account_id": "demo.test.account",
                "age": "34",
                "attachment_status": "valid",
                "date_of_birth": "1990-11-15",
                "declined_reason": "",
                "document_number": "14XXXXXX",
                "document_type": "national-id",
                "failure_status": "",
                "last_name": "DOE",
                "message": "",
                "name": "JOHN",
                "residence_address": "",
                "status": "success",
                "validation_id": "VLD0c5XXXX"
            }
        },
        "start": {
            "now": {
                "value": "2025-02-05T17:11:13+00:00"
            },
            "process": {
                "id": "IDPb801XXXX"
            }
        }
    },
    "update_date": "2025-02-05T17:20:03Z",
    "creation_date": "2025-02-05T17:11:13.566551078Z",
    "config": {
        "allow_native_camera": true,
        "continue_flow_in_new_device": true,
        "enable_desktop_flow": true,
        "end_business_hours": "2021-01-01T00:00:00Z",
        "follow_up_delay": 120,
        "follow_up_message": "Tienes un proceso activo en curso",
        "lang": "en",
        "messages": {},
        "start_business_hours": "2021-01-01T13:00:00Z",
        "time_to_live": 120,
        "hide_internal_manual_review": false
    },
    "theme": {},
    "ab_testing_config": {
        "name": "ABTestingFeedback",
        "experiments": [
        ]
    },
    "gender": "male",
    "status": "pending",
    "account_id": "demo.test.account",
    "created_via": "unknown",
    "ab_experiment": "B",
    "process_id": "IDPb801XXXX",
    "ip_address": "186.XXX.XXX.XXX",
    "client_id": "TCI8abXXXX",
    "country": "ALL",
    "last_name": "DOE",
    "redirect_url": "https://dev.truora.com/index.html",
    "first_name": "JOHN",
    "document_number": "14XXXXXX",
    "flow_id": "IPF273XXXX",
    "current_step_type": "record_face_video_liveness",
    "steps": [
        {
            "step_id": "IPSb322XXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email",
            "...": "..."
        },
        {
            "step_id": "IPSc95bXXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email_verification_code",
            "...": "..."
        },
        {
            "step_id": "IPSc4cdXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_document_type",
            "...": "..."
        },
        {
            "step_id": "IPSb105XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "take_document_photo",
            "...": "..."
        },
        {
            "step_id": "IPS01abXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_photo_liveness",
            "verification_output": {
                "status": "success",
                "outputs": [
                    {
                        "value": "face-recognition",
                        "name": "validation_type"
                    },
                    {
                        "value": "demo.test.account",
                        "name": "account_id"
                    },
                    {
                        "value": "https://files.upload-urls.com/face-recognition-validator/pending-enrollments/",
                        "name": "record_face_photo"
                    },
                    {
                        "value": "ENR7e417XXXX",
                        "name": "enrollment_id"
                    },
                    {
                        "value": "ENR7e417XXXX",
                        "name": "enrollment_id"
                    }
                ],
                "media_uploaded": false,
                "step_data_received": true
            },
            "config": {
                "allowed_document_types": [
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPSe55fXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_video_liveness",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPS31b9XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_face_verification_liveness",
            "...": "..."
        }
    ],
    "identity_verification_names": [
        "email_verification",
        "document_verification_with_liveness"
    ],
    "current_step": 5,
    "current_step_index": 0,
    "time_to_live": 120
}
            

2. Record face video liveness

For this step verification, set the request body by including the step_id, verification_id and the step type. The request body should look similar to the following:

Verify Identity - Body
                {
    "step_id": "IPSe55fXXXX",
    "verification_id": "VRF25790212_XXXX",
    "type": "record_face_video_liveness"
}
            

Send the Verify Identity request. Upon receiving a 200 - Request successful response, poll the Read Identity endpoint to confirm that the process has moved to the next step.

In the relevant portion of the response:

  • Check the current_step_data to verify that the current step has moved to enter_face_verification_liveness.
  • Check that the current_step is now 6.
  • Check the steps object to confirm that the record_face_video_liveness step has a verification_output with a status of success and contains the validation_id, validation_type and the URL for the face_video generated in outputs.

Important: Extract the face_video URL, as you will need it in the next step to upload the user’s face video.

GET
/v1/processes/{process_id}
                {
    "date_of_birth": "1990-11-15T00:00:00Z",
    "current_step_data": {
        "type": "enter_face_verification_liveness",
        "verification_output": null,
        "config": {
            "allowed_document_types": [
                {
                    "country": "BR",
                    "documents": [
                    ]
                },
                {
                    "country": "CO",
                    "documents": [
                    ]
                },
                {
                    "country": "VE",
                    "documents": [
                    ]
                },
                {
                    "country": "PE",
                    "documents": [
                    ]
                },
                {
                    "country": "PA",
                    "documents": [
                    ]
                },
                {
                    "country": "MX",
                    "documents": [
                    ]
                },
                {
                    "country": "CL",
                    "documents": [
                    ]
                },
                {
                    "country": "CR",
                    "documents": [
                    ]
                },
                {
                    "country": "ALL",
                    "documents": [
                    ]
                }
            ],
            "enable_file_upload": true,
            "retries": 2,
            "face_threshold": 0.65,
            "timeout": 300,
            "liveness_type": "passive",
            "attached_document_ids": null,
            "attached_documents_variables": null,
            "manual_review": "disabled",
            "recorder": "rt-t",
            "sub_validations": [
                "similarity",
                "passive_liveness",
                "face_search"
            ],
            "form_message_text": "",
            "form_message_button_text": ""
        },
        "expected_inputs": [
            {
                "type": "hidden",
                "value": "",
                "name": "actions_face_liveness",
                "placeholder": "",
                "description": "",
                "length": 0,
                "read_only": false
            },
            {
                "type": "hidden",
                "value": "",
                "name": "speech_token",
                "placeholder": "",
                "description": "",
                "length": 0,
                "read_only": false
            }
        ],
        "async_step": true,
        "description": "",
        "retry_status": "unavailable",
        "retry_reason": ""
    },
    "variables": {
        "VRF23a26c84_XXXX": {
            "email_validation": {
                "email": "john.doe@demo.com",
                "validation_id": "VLDf6efXXXX"
            }
        },
        "VRF25790212_XXXX": {
            "document_validation": {
                "account_id": "demo.test.account",
                "age": "34",
                "attachment_status": "valid",
                "date_of_birth": "1990-11-15",
                "declined_reason": "",
                "document_number": "14XXXXXX",
                "document_type": "national-id",
                "failure_status": "",
                "last_name": "DOE",
                "message": "",
                "name": "JOHN",
                "residence_address": "",
                "status": "success",
                "validation_id": "VLD0c5XXXX"
            }
        },
        "start": {
            "now": {
                "value": "2025-02-05T17:11:13+00:00"
            },
            "process": {
                "id": "IDPb801XXXX"
            }
        }
    },
    "update_date": "2025-02-05T17:21:39Z",
    "creation_date": "2025-02-05T17:11:13.566551078Z",
    "config": {
        "allow_native_camera": true,
        "continue_flow_in_new_device": true,
        "enable_desktop_flow": true,
        "end_business_hours": "2021-01-01T00:00:00Z",
        "follow_up_delay": 120,
        "follow_up_message": "Tienes un proceso activo en curso",
        "lang": "en",
        "messages": {},
        "start_business_hours": "2021-01-01T13:00:00Z",
        "time_to_live": 120,
        "hide_internal_manual_review": false
    },
    "theme": {},
    "ab_testing_config": {
        "name": "ABTestingFeedback",
        "experiments": [
        ]
    },
    "gender": "male",
    "status": "pending",
    "account_id": "demo.test.account",
    "created_via": "unknown",
    "ab_experiment": "B",
    "process_id": "IDPb801XXXX",
    "ip_address": "186.168.158.122",
    "client_id": "TCI8abXXXX",
    "country": "ALL",
    "last_name": "DOE",
    "redirect_url": "https://dev.truora.com/index.html",
    "first_name": "JOHN",
    "document_number": "14XXXXXX",
    "flow_id": "IPF273XXXX",
    "current_step_type": "enter_face_verification_liveness",
    "steps": [
        {
            "step_id": "IPSb322XXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email",
            "...": "..."
        },
        {
            "step_id": "IPSc95bXXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email_verification_code",
            "...": "..."
        },
        {
            "step_id": "IPSc4cdXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_document_type",
            "...": "..."
        },
        {
            "step_id": "IPSb105XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "take_document_photo",
            "...": "..."
        },
        {
            "step_id": "IPS01abXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_photo_liveness",
            "...": "..."
        },
        {
            "step_id": "IPSe55fXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_video_liveness",
            "verification_output": {
                "status": "success",
                "outputs": [
                    {
                        "value": "face-recognition",
                        "name": "validation_type"
                    },
                    {
                        "value": "VLDe91XXXX",
                        "name": "validation_id"
                    },
                    {
                        "value": "https://files.upload-urls.com/face-recognition-validator/create-validation/",
                        "name": "face_video"
                    },
                    {
                        "value": "",
                        "name": "actions_face_liveness"
                    },
                    {
                        "value": "",
                        "name": "speech_token"
                    }
                ],
                "media_uploaded": false,
                "step_data_received": true
            },
            "config": {
                "allowed_document_types": [
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": null,
            "files_upload_urls": null,
            "remaining_retries": 0,
            "async_step": null
        },
        {
            "step_id": "IPS31b9XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_face_verification_liveness",
            "verification_output": null,
            "config": {
                "allowed_document_types": [
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "hidden",
                    "value": "",
                    "name": "actions_face_liveness",
                    "placeholder": "",
                    "description": "",
                    "length": 0,
                    "read_only": false
                },
                {
                    "type": "hidden",
                    "value": "",
                    "name": "speech_token",
                    "placeholder": "",
                    "description": "",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": [
                {
                    "name": "face_video",
                    "url": "https://files.upload-urls.com/face-recognition-validator/create-validation/",
                    "description": "Ahora envía un video para validar tu identidad."
                }
            ],
            "remaining_retries": 0,
            "async_step": true
        }
    ],
    "identity_verification_names": [
        "email_verification",
        "document_verification_with_liveness"
    ],
    "current_step": 6,
    "current_step_index": 0,
    "time_to_live": 120
}
            

3. Enter face verification liveness

This step requires submitting the user’s face video through a PUT request to face_video URL obtained in the previous step. The request body should be set to Binary to correctly upload the video file:

  • PUT {{face_video}}

Send the request. Upon successfully uploading the video, the response should return 200 - Request successful:

PUT
{{face_video}}
                {
    "code": 10200,
    "http_code": 200,
    "message": "Successfully uploaded"
}
            

Once successfully uploading the video, set the request body by including the step_id, verification_id and the step type. The request body should look similar to the following:

Verify Identity - Body
                {
    "step_id": "IPS31b9XXXX",
    "verification_id": "VRF25790212_XXXX",
    "type": "enter_face_verification_liveness"
}
            

Send the Verify Identity request. After receiving a 200 - Request successful response, keep polling the Read Identity endpoint to confirm the step verification. This step validates the document face against the uploaded video for face recognition.

In the relevant portion of the response:

  • Check that the is no longer a current_step_data.
  • Check that the current_step is now 7.
  • Check the steps object to confirm that the enter_face_verification_liveness step has a verification_output with a status of success, along with the validation_id, validation_type and account_id set in outputs.
GET
/v1/processes/{process_id}
                {
    "date_of_birth": "1990-11-15T00:00:00Z",
    "variables": {
        "VRF23a26c84_XXXX": {
            "email_validation": {
                "email": "john.doe@demo.com",
                "validation_id": "VLDf6efXXXX"
            }
        },
        "VRF25790212_XXXX": {
            "document_validation": {
                "account_id": "demo.test.account",
                "age": "34",
                "attachment_status": "valid",
                "date_of_birth": "1990-11-15",
                "declined_reason": "",
                "document_number": "14XXXXXX",
                "document_type": "national-id",
                "failure_status": "",
                "last_name": "DOE",
                "message": "",
                "name": "JOHN",
                "residence_address": "",
                "status": "success",
                "validation_id": "VLD0c5XXXX"
            },
            "face_validation": {
                "account_id": "demo.test.account",
                "attachment_status": "",
                "declined_reason": "",
                "failure_status": "",
                "message": "",
                "status": "success",
                "validation_id": "VLDe91XXXX"
            }
        },
        "start": {
            "now": {
                "value": "2025-02-05T17:11:13+00:00"
            },
            "process": {
                "id": "IDPb801XXXX"
            }
        }
    },
    "update_date": "2025-02-05T17:25:21Z",
    "creation_date": "2025-02-05T17:11:13.566551078Z",
    "config": {
        "allow_native_camera": true,
        "continue_flow_in_new_device": true,
        "enable_desktop_flow": true,
        "end_business_hours": "2021-01-01T00:00:00Z",
        "follow_up_delay": 120,
        "follow_up_message": "Tienes un proceso activo en curso",
        "lang": "en",
        "messages": {},
        "start_business_hours": "2021-01-01T13:00:00Z",
        "time_to_live": 120,
        "hide_internal_manual_review": false
    },
    "theme": {},
    "ab_testing_config": {
        "name": "ABTestingFeedback",
        "experiments": [
        ]
    },
    "gender": "male",
    "status": "success",
    "account_id": "demo.test.account",
    "created_via": "unknown",
    "ab_experiment": "B",
    "process_id": "IDPb801XXXX",
    "ip_address": "186.XXX.XXX.XXX",
    "client_id": "TCI8abXXXX",
    "country": "ALL",
    "last_name": "DOE",
    "redirect_url": "https://dev.truora.com/index.html",
    "first_name": "JOHN",
    "document_number": "14XXXXXX",
    "flow_id": "IPF273XXXX",
    "steps": [
        {
            "step_id": "IPSb322XXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email",
            "...": "..."
        },
        {
            "step_id": "IPSc95bXXXX",
            "verification_id": "VRF23a26c84_XXXX",
            "type": "enter_email_verification_code",
            "...": "..."
        },
        {
            "step_id": "IPSc4cdXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_document_type",
            "...": "..."
        },
        {
            "step_id": "IPSb105XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "take_document_photo",
            "...": "..."
        },
        {
            "step_id": "IPS01abXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_photo_liveness",
            "...": "..."
        },
        {
            "step_id": "IPSe55fXXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "record_face_video_liveness",
            "...": "..."
        },
        {
            "step_id": "IPS31b9XXXX",
            "verification_id": "VRF25790212_XXXX",
            "type": "enter_face_verification_liveness",
            "verification_output": {
                "status": "success",
                "outputs": [
                    {
                        "value": "face-recognition",
                        "name": "validation_type"
                    },
                    {
                        "value": "VLDe91XXXX",
                        "name": "validation_id"
                    },
                    {
                        "value": "demo.test.account",
                        "name": "account_id"
                    }
                ],
                "media_uploaded": true,
                "step_data_received": true
            },
            "config": {
                "allowed_document_types": [
                    {
                        "country": "BR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CO",
                        "documents": [
                        ]
                    },
                    {
                        "country": "VE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PE",
                        "documents": [
                        ]
                    },
                    {
                        "country": "PA",
                        "documents": [
                        ]
                    },
                    {
                        "country": "MX",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CL",
                        "documents": [
                        ]
                    },
                    {
                        "country": "CR",
                        "documents": [
                        ]
                    },
                    {
                        "country": "ALL",
                        "documents": [
                        ]
                    }
                ],
                "enable_file_upload": true,
                "retries": 2,
                "face_threshold": 0.65,
                "timeout": 300,
                "liveness_type": "passive",
                "attached_document_ids": null,
                "attached_documents_variables": null,
                "manual_review": "disabled",
                "recorder": "rt-t",
                "sub_validations": [
                    "similarity",
                    "passive_liveness",
                    "face_search"
                ],
                "form_message_text": "",
                "form_message_button_text": ""
            },
            "expected_inputs": [
                {
                    "type": "hidden",
                    "value": "",
                    "name": "actions_face_liveness",
                    "placeholder": "",
                    "description": "",
                    "length": 0,
                    "read_only": false
                },
                {
                    "type": "hidden",
                    "value": "",
                    "name": "speech_token",
                    "placeholder": "",
                    "description": "",
                    "length": 0,
                    "read_only": false
                }
            ],
            "files_upload_urls": [
                {
                    "name": "face_video",
                    "url": "https://files.upload-urls.com/face-recognition-validator/create-validation/",
                    "description": "Ahora envía un video para validar tu identidad."
                }
            ],
            "remaining_retries": 0,
            "async_step": true
        }
    ],
    "identity_verification_names": [
        "email_verification",
        "document_verification_with_liveness"
    ],
    "current_step": 7,
    "current_step_index": 0,
    "time_to_live": 120,
    "risk_evaluation": {
        "risk_evaluation_id": "VA_RISK_01JKXXXX",
        "risk_evaluation_status": "success",
        "risk_evaluation_result": "not_risky"
    }
}
            

Final Confirmation: Since there are no more steps left, the status of the successful process should be success.

Successful Process API Response

Keep in mind that the status of a process always begins as pending, and updates to either success or failure when the process completes.

Get Process Result

  • You can get the process results with a query to the Truora’s API or from the dashboard. For more information, please see Guide to Get Results.
  • To get process result automatically, you must subscribe webhooks. For more information, please visit the Webhooks guide.