# Provenance: modeled-from-docs (2026-07-17). Truora publishes no downloadable # first-party OpenAPI/Swagger document. This specification was MODELED from the # public Truora developer documentation at https://dev.truora.com/docs/ and the # per-product guides (Checks, Validators, Digital Identity, Account/API keys). # Truora spans four documented production hosts, each modeled below via a # per-path `servers` override: # - https://api.checks.truora.com (Checks / background checks) # - https://api.validations.truora.com (Validators / KYC validations) # - https://api.identity.truora.com (Digital Identity web + WhatsApp processes) # - https://api.account.truora.com (Account / API-key + web integration tokens) # Authentication is a Truora-API-Key request header (a JWT issued from the account # dashboard or the /v1/api-keys endpoint). Region focus: LatAm (CO, CL, MX, PE, BR, SV, CR). openapi: 3.0.3 info: title: Truora API description: >- Truora is a Latin American identity verification, background-check, and conversational-onboarding platform. This modeled specification documents the public REST surface across four production hosts: the Checks API (background checks on people, vehicles, and companies), the Validators API (document, facial, email, and phone validation), the Digital Identity API (web and WhatsApp verification processes), and the Account API (API-key and web integration token management). All requests authenticate with a `Truora-API-Key` header. termsOfService: https://www.truora.com/en/terms-and-conditions contact: name: Truora Developers url: https://dev.truora.com/ version: '1.0' servers: - url: https://api.checks.truora.com description: Checks API (background checks) - default host - url: https://api.validations.truora.com description: Validators API (KYC validations) - url: https://api.identity.truora.com description: Digital Identity API (web + WhatsApp processes) - url: https://api.account.truora.com description: Account API (API keys and web integration tokens) security: - TruoraApiKey: [] tags: - name: Checks description: Background checks on persons, vehicles, and companies across LatAm. - name: Continuous Monitoring description: Recurring re-checks of previously verified subjects. - name: Validators description: Document, facial, email, and phone validation (KYC). - name: Digital Identity description: Web and WhatsApp identity verification processes. - name: Account description: API-key and web integration token management. paths: /v1/checks: servers: - url: https://api.checks.truora.com post: operationId: createCheck tags: - Checks summary: Create a background check description: >- Creates a background check for a person, vehicle, or company and queues it to begin collecting information from LatAm public and legal-entity databases. Poll the returned check_id with getCheck to retrieve results. requestBody: required: true content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateCheckRequest' responses: '200': description: Check created and queued. content: application/json: schema: $ref: '#/components/schemas/Check' '401': $ref: '#/components/responses/Unauthorized' get: operationId: listChecks tags: - Checks summary: List background checks description: Retrieves the background checks created under the account. parameters: - name: check_type in: query required: false schema: type: string enum: [person, vehicle, company] - name: page_size in: query required: false schema: type: integer responses: '200': description: A list of checks. content: application/json: schema: type: object properties: checks: type: array items: $ref: '#/components/schemas/Check' '401': $ref: '#/components/responses/Unauthorized' /v1/checks/{check_id}: servers: - url: https://api.checks.truora.com parameters: - $ref: '#/components/parameters/CheckId' get: operationId: getCheck tags: - Checks summary: Get a background check description: Retrieves the current status and scored results for a check. responses: '200': description: The requested check. content: application/json: schema: $ref: '#/components/schemas/Check' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteCheck tags: - Checks summary: Delete a background check description: Removes a background check record from the account. responses: '200': description: Check deleted. '404': $ref: '#/components/responses/NotFound' /v1/checks/{check_id}/pdf: servers: - url: https://api.checks.truora.com parameters: - $ref: '#/components/parameters/CheckId' get: operationId: getCheckPdf tags: - Checks summary: Get a check summary PDF description: Returns a PDF summarizing the background-check results. responses: '200': description: PDF document. content: application/pdf: schema: type: string format: binary /v1/checks/{check_id}/variables: servers: - url: https://api.checks.truora.com parameters: - $ref: '#/components/parameters/CheckId' get: operationId: getCheckVariables tags: - Checks summary: Get check variables description: Returns the variables (findings) discovered for a background check. responses: '200': description: Variables found for the check. content: application/json: schema: type: object /v1/checks/{check_id}/attachments: servers: - url: https://api.checks.truora.com parameters: - $ref: '#/components/parameters/CheckId' get: operationId: getCheckAttachments tags: - Checks summary: Get check attachments description: >- Returns links to the certificates and supporting documents found for a background check. responses: '200': description: Attachment links. content: application/json: schema: type: object /v1/continuous-check: servers: - url: https://api.checks.truora.com post: operationId: createContinuousCheck tags: - Continuous Monitoring summary: Create a continuous check description: Sets up recurring background monitoring for a subject. requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: national_id: type: string country: type: string type: type: string enum: [person, vehicle, company] responses: '200': description: Continuous check created. content: application/json: schema: type: object get: operationId: listContinuousChecks tags: - Continuous Monitoring summary: List continuous checks description: Retrieves the active continuous checks configured on the account. responses: '200': description: A list of continuous checks. content: application/json: schema: type: object /v1/validations: servers: - url: https://api.validations.truora.com post: operationId: createValidation tags: - Validators summary: Create a validation description: >- Creates a KYC validation (document, facial, email, or phone). For document and face validations the response includes signed upload URLs (front_url, reverse_url) for submitting the subject's media. requestBody: required: true content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateValidationRequest' responses: '200': description: Validation created. content: application/json: schema: $ref: '#/components/schemas/Validation' '401': $ref: '#/components/responses/Unauthorized' /v1/validations/{validation_id}: servers: - url: https://api.validations.truora.com parameters: - name: validation_id in: path required: true schema: type: string get: operationId: getValidation tags: - Validators summary: Get a validation description: >- Retrieves the status and extracted details (OCR data, match results, background info) for a validation. parameters: - name: show_details in: query required: false schema: type: boolean description: When true, includes extracted document data and image links. responses: '200': description: The requested validation. content: application/json: schema: $ref: '#/components/schemas/Validation' '404': $ref: '#/components/responses/NotFound' /v1/processes/{process_id}: servers: - url: https://api.identity.truora.com parameters: - $ref: '#/components/parameters/ProcessId' get: operationId: getProcess tags: - Digital Identity summary: Get a digital identity process description: >- Retrieves the state of a Digital Identity verification process created via a web integration token or a WhatsApp conversational flow. responses: '200': description: The requested process. content: application/json: schema: $ref: '#/components/schemas/Process' '404': $ref: '#/components/responses/NotFound' /v1/processes/{process_id}/result: servers: - url: https://api.identity.truora.com parameters: - $ref: '#/components/parameters/ProcessId' get: operationId: getProcessResult tags: - Digital Identity summary: Get digital identity process results description: >- Returns the consolidated verification result (scored decision plus the underlying document, face, and liveness validations) for a completed Digital Identity or WhatsApp verification process. responses: '200': description: The process result. content: application/json: schema: type: object '404': $ref: '#/components/responses/NotFound' /v1/api-keys: servers: - url: https://api.account.truora.com post: operationId: createApiKey tags: - Account summary: Create an API key or web integration token description: >- Issues a Truora API key. With key_type=backend the returned JWT authenticates server-to-server API calls; with key_type=web it issues a short-lived web integration token used to launch a Digital Identity process in the browser or WhatsApp flow. requestBody: required: true content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/CreateApiKeyRequest' responses: '200': description: API key created. The JWT is returned once. content: application/json: schema: $ref: '#/components/schemas/ApiKey' '401': $ref: '#/components/responses/Unauthorized' get: operationId: listApiKeys tags: - Account summary: List API keys description: Retrieves the API keys registered on the account. responses: '200': description: A list of API keys. content: application/json: schema: type: object properties: api_keys: type: array items: $ref: '#/components/schemas/ApiKey' /v1/api-keys/{api_key_id}: servers: - url: https://api.account.truora.com parameters: - name: api_key_id in: path required: true schema: type: string delete: operationId: deleteApiKey tags: - Account summary: Delete (revoke) an API key description: Revokes an API key so it can no longer authenticate requests. responses: '200': description: API key revoked. '404': $ref: '#/components/responses/NotFound' components: securitySchemes: TruoraApiKey: type: apiKey in: header name: Truora-API-Key description: >- A JWT issued from the Truora dashboard or the /v1/api-keys endpoint, sent in the Truora-API-Key request header on every call. parameters: CheckId: name: check_id in: path required: true schema: type: string ProcessId: name: process_id in: path required: true schema: type: string responses: Unauthorized: description: Missing or invalid Truora-API-Key. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: CreateCheckRequest: type: object required: - national_id - country - type properties: national_id: type: string description: National identity number of the subject. country: type: string description: ISO country code (CO, CL, MX, PE, BR, SV, CR). enum: [CO, CL, MX, PE, BR, SV, CR, ALL] type: type: string enum: [person, vehicle, company] force_creation: type: boolean user_authorized: type: boolean Check: type: object properties: check_id: type: string account_id: type: string national_id: type: string check_type: type: string country: type: string creation_date: type: string format: date-time status: type: string description: e.g. not_started, in_progress, completed, error, delayed. score: type: number format: float description: Risk score between 0 and 1. CreateValidationRequest: type: object required: - type - country - user_authorized properties: type: type: string enum: - document-validation - face-recognition - face-revalidation - email - phone - electronic-signature country: type: string enum: [CO, CL, MX, PE, BR, SV, ALL] document_type: type: string description: e.g. national-id, passport, foreign-id, driver-license. user_authorized: type: boolean account_id: type: string timeout: type: integer Validation: type: object properties: validation_id: type: string account_id: type: string validation_status: type: string description: e.g. pending, success, failure. creation_date: type: string format: date-time front_url: type: string description: Signed URL for uploading the front of a document. reverse_url: type: string description: Signed URL for uploading the back of a document. details: type: object description: Extracted OCR data, match results, and background info. Process: type: object properties: process_id: type: string account_id: type: string status: type: string creation_date: type: string format: date-time flow_id: type: string CreateApiKeyRequest: type: object required: - key_type properties: key_type: type: string enum: [backend, web, sdk] grant: type: string description: Product grant, e.g. digital-identity, signals, all. api_key_version: type: string enum: ['1', '2'] country: type: string ApiKey: type: object properties: api_key_id: type: string api_key: type: string description: The JWT credential. Returned once at creation time. key_type: type: string grant: type: string creation_date: type: string format: date-time Error: type: object properties: code: type: integer message: type: string