Skip to content
Last updated

Asynchronous Calls

In addition to synchronous calls — where the customer initiates a call and is immediately redirected to the platform test and then to an available operator — LiveID+ also supports asynchronous calls.

In this mode, the customer submits their information to request a video identification, which an operator will handle at a later time (e.g., through a scheduled appointment). This is the recommended integration method as it provides better control over the call flow.


How It Works

The asynchronous call flow uses two methods:

  1. pushAsyncCall: Queues a video identification call in the system without immediately routing it to an operator.
  2. service-asyncall: Retrieves the queued call and starts the actual video identification session.

Workflow

1. Your system calls POST /api/service/pushAsyncCall
   → Returns a unique ID (uId)

2. Later, the customer opens GET /app/service-asyncall?uId=<uId>
   → Redirects to compatibility test, then to an available operator

3. Your system can monitor the status via GET /api/v2/getAsyncRequestInfo?uId=<uId>
   → Returns all calls linked to the async request with their statuses

Creating an Asynchronous Call

Endpoint: POST /api/service/pushAsyncCall

Request Body:

ParameterTypeRequiredDescription
b64Datastring (Base64)YesUTF-8 Base64 encoded JSON with call configuration (see below)
methodstringNoThe method used to start the call: "start" (preferred) or "live". Default: "live"
expirestring (date)NoExpiration date for the call. After this date, the call is removed from the system.

The b64Data JSON structure (before Base64 encoding):

The object must follow the same structure used by the service-start API:

{
  "id_organization": "ORG_CODE",
  "id_process": "process-uuid",
  "json": {
    "lang": "en",
    "liveid_email": "john.doe@example.com",
    "liveid_name": "John",
    "liveid_surname": "Doe",
    "liveid_servercallback": {
      "url": "https://your-system.com/callback",
      "otherParams": {
        "custom_reference": "REF-12345"
      }
    },
    "data": {
      "fiscal_code": {
        "datatype": "text",
        "label": "Fiscal Code",
        "value": "RSSMRA85M01H501Z"
      }
    }
  }
}

Note: Given that all data is already encoded in b64Data, the json parameter should not be Base64 encoded separately when using method=start — it is passed directly as a JSON object.

Success Response:

{
  "success": true,
  "uId": "unique-async-call-id"
}

The returned uId is used to initiate the call later and to track its status.


Initiating the Call

Endpoint: GET /app/service-asyncall

This endpoint retrieves the queued call and redirects the customer to the video identification platform. It can be provided as a direct link to the customer (e.g., in a confirmation email).

ParameterTypeRequiredDescription
uIdstringYesUnique ID returned by pushAsyncCall
noDelstringNoIf "1", the async call is not removed after the link is used. Default: "0" (call is removed after page load).
id_operator2Callstring (UUID)NoRoute call to a specific operator by ID
email_operator2Callstring (email)NoRoute call to a specific operator by email
extId_operator2CallstringNoRoute call to a specific operator by external ID

Note: id_operator2Call, email_operator2Call, and extId_operator2Call are mutually exclusive.

Example link:

https://liveid.namirialtsp.com/app/service-asyncall?uId=abc123-def456

Monitoring Async Call Status

Get All Calls for an Async Request

Endpoint: GET /api/v2/getAsyncRequestInfo

Authentication: API Key (header apikey)

ParameterTypeRequiredDescription
uIdstringYesUnique ID returned by pushAsyncCall

Success Response:

{
  "success": true,
  "create_date": "2026-01-15T10:00:00.000Z",
  "expire_date": "2026-01-20T23:59:59.000Z",
  "customer_name": "John",
  "customer_surname": "Doe",
  "customer_email": "john.doe@example.com",
  "calls": [
    {
      "start_date": "2026-01-15T14:30:00.000Z",
      "answer_date": "2026-01-15T14:32:00.000Z",
      "end_date": "2026-01-15T14:45:00.000Z",
      "id": "conference-uuid",
      "status": "N",
      "call_status": "ACTIVE"
    }
  ]
}

The call_status field can be: WAITING, ACTIVE, EXPIRED, or CANCELLED.

Get Last Call for an Async Request

Endpoint: POST /api/service/getCallInfoUID

ParameterTypeRequiredDescription
uIdstringYesUnique ID returned by pushAsyncCall

This returns details about the most recent call linked to the async UID. For all calls, use getAsyncRequestInfo instead.


Deleting an Asynchronous Call

Endpoint: DELETE /api/service/delAsyncCall

ParameterTypeRequiredDescription
uIdstringYesUnique ID of the call to delete

Success Response:

{
  "success": true
}