{
  "openapi": "3.1.0",
  "info": {
    "title": "Api LiveID+",
    "version": "2.1.0",
    "x-scope": "vertical-solutions",
    "x-product": "LiveID+",
    "x-category": "developer-documentation",
    "x-version": "2.1",
    "description": "API for third parties integration with LiveID+ video identification platform.\n\nYou can subscribe to the LiveID+ service on the <a target=\"_blank\" href=\"https://status.namirial.com\">Namirial status page</a> to receive updates on important releases.",
    "x-generated-at": "2026-07-08T13:51:10.001Z"
  },
  "servers": [
    {
      "url": "https://liveid.test.namirialtsp.com",
      "description": "Test"
    },
    {
      "url": "https://liveid.namirialtsp.com",
      "description": "Production"
    }
  ],
  "tags": [
    {
      "name": "app",
      "description": "Endpoints to initiate a call on LiveID+"
    },
    {
      "name": "authenticate",
      "description": "Endpoints to manage authentication and generate session tokens"
    },
    {
      "name": "service",
      "description": "General service endpoints for checking status, queue information, and available operators"
    },
    {
      "name": "v1",
      "description": "General conference management endpoints (Version 1)<br/><br/><div style=\"background-color:rgba(255, 10, 10, 0.2); padding:10px; border:1px solid;\"><h3>**DEPRECATION NOTICE:**</h3>For security reasons, the v1 API endpoints has been deprecated and will be shut down in the upcoming months, starting from TEST environment.<ul><li><b>15/10/2026</b> - TEST environment</li><li><b>15/01/2027</b> - PRODUCTION environment</li></ul>Please migrate to the [v2 API](v2) endpoints as soon as possible. See the [migration guide](/products/liveidplus/2.1-test/enterprise/get-started/v1-to-v2-migration) for details.</div>"
    },
    {
      "name": "v2",
      "description": "General conference management endpoints (Version 2)"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Integration",
      "tags": [
        "app"
      ]
    },
    {
      "name": "API",
      "tags": [
        "authenticate",
        "service",
        "v1",
        "v2"
      ]
    }
  ],
  "components": {
    "securitySchemes": {
      "ConferenceToken": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Bearer Token provided on call closing or generated with [genAPIToken](./../developer-documentation/api-definition/authenticate/genapitoken)"
      },
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "apikey",
        "description": "Organization specific API key provided by Namirial LiveID+ team"
      }
    },
    "responses": {
      "BadRequestErrorResponse": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DefaultErrorResponse"
            }
          }
        }
      },
      "UnauthorizedErrorResponse": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DefaultErrorResponse"
            }
          }
        }
      },
      "ForbiddenErrorResponse": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DefaultErrorResponse"
            }
          }
        }
      },
      "NotFoundErrorResponse": {
        "description": "Not Found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DefaultErrorResponse"
            }
          }
        }
      },
      "ServerErrorResponse": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DefaultErrorResponse"
            }
          }
        }
      }
    },
    "schemas": {
      "DefaultSuccessResponse": {
        "type": "object",
        "properties": {
          "service": {
            "type": "string",
            "description": "Service endpoint"
          },
          "success": {
            "type": "boolean",
            "description": "Success result",
            "default": true
          }
        }
      },
      "DefaultErrorResponse": {
        "type": "object",
        "properties": {
          "service": {
            "type": "string",
            "description": "Service endpoint"
          },
          "success": {
            "type": "boolean",
            "description": "Success result",
            "default": false
          },
          "errorMessage": {
            "type": "string",
            "description": "Description of the message"
          }
        }
      },
      "ServiceStartJson": {
        "type": "object",
        "description": "JSON object containing all the configuration parameters for starting a call",
        "properties": {
          "lang": {
            "type": "string",
            "description": "The ISO 639-1 Code of the language that will be used in the call (ex. \"en\", \"it\", ...)",
            "example": "en"
          },
          "liveid_email": {
            "type": "string",
            "description": "email of the caller",
            "format": "email"
          },
          "liveid_name": {
            "type": "string",
            "description": "name of the caller"
          },
          "liveid_surname": {
            "type": "string",
            "description": "surname of the caller"
          },
          "liveid_servercallback": {
            "type": "object",
            "description": "Configuration of an endpoint to call as a server callback at the end of the process \n\n**For security reasons, the endpoint must be https and has to be approved by Namirial in advance** \n\nAny request for new endpoints can be sent to liveidplus.support@namirial.com, specifying the organization code. \n\nOne or more email addresses can be registered to receive alerts about the server callbacks of a process using the [v2/registerAlertEmail](./../v2/registeralertemail) API.",
            "properties": {
              "url": {
                "type": "string",
                "description": "The URL to call at the end of the process.",
                "format": "uri"
              },
              "otherParams": {
                "type": "object",
                "description": "A JSON object containing key-value pairs with additional parameters to be included in the POST request to the callback endpoint."
              }
            },
            "required": [
              "url"
            ]
          },
          "liveid_priorityQueueLevel": {
            "type": "number",
            "description": "Sets a priority level (0 to 5, higher number means higher priority) in queue",
            "default": 0,
            "minimum": 0,
            "maximum": 5
          },
          "data": {
            "type": "object",
            "description": "a JSON representing the configuration of all the data fields for the process. The schema of each field is shown by the following \"example_field\"",
            "properties": {
              "example_field": {
                "type": "object",
                "properties": {
                  "datatype": {
                    "type": "string",
                    "description": "The data type of the field. It could be set to any of these HTML input element \"type\" attribute",
                    "enum": [
                      "checkbox",
                      "date",
                      "email",
                      "month",
                      "number",
                      "tel",
                      "text",
                      "time",
                      "url"
                    ]
                  },
                  "label": {
                    "type": "string",
                    "description": "The label to show"
                  },
                  "value": {
                    "type": "string",
                    "description": "The value of the field"
                  },
                  "display": {
                    "type": "string",
                    "description": "If set to \"none\" the field will not be shown in the data visualization modules.\nIf set to \"operator\" the field will be visible only to the operator\n",
                    "enum": [
                      "none",
                      "operator"
                    ]
                  },
                  "order": {
                    "type": "number",
                    "description": "The numeric order in which to show the fields"
                  },
                  "disabled": {
                    "type": "boolean",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "maxlength": {
                    "type": "number",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "max": {
                    "type": "number",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "min": {
                    "type": "number",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "pattern": {
                    "type": "string",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "placeholder": {
                    "type": "string",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "readonly": {
                    "type": "boolean",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "required": {
                    "type": "boolean",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "size": {
                    "type": "number",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "step": {
                    "type": "number",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  },
                  "title": {
                    "type": "string",
                    "description": "HTML input attribute for validation and more (see <a href=\"https://www.w3schools.com/html/html_form_attributes.asp\" target=\"_blank\">HTML input attributes</a>)"
                  }
                },
                "required": [
                  "datatype",
                  "label",
                  "value"
                ]
              }
            }
          }
        },
        "required": [
          "lang",
          "liveid_email",
          "liveid_name",
          "liveid_surname",
          "data"
        ]
      },
      "EndPattern": {
        "type": "string",
        "description": "Status of the call\n\n- `N` Closed succesfully\n- `A` Aborted by operator\n- `K` System KO\n- `S` Suspended\n- `ACTIVE` Still running\n- `EXPIRED` Expired (no one answered)\n- `CANCELLED` Cancelled by user",
        "enum": [
          "N",
          "A",
          "K",
          "S",
          "ACTIVE",
          "EXPIRED",
          "CANCELLED"
        ]
      }
    }
  },
  "paths": {
    "/app/service-asyncall": {
      "get": {
        "operationId": "serviceAsyncall",
        "summary": "service-asyncall",
        "description": "In addition to perform a \"synchronous\" call (the customer calls and is immediately redirected to platform test, then to the first available operator) it's also possible to perform an \"asynchronous\" call: the customer provides his data and then requests a video identification, which will be managed in another moment by operator (eg: calendar management). To do this LiveID+ platform provides two methods: pushAsyncCall and service-asyncall.\n\n**service-asyncall** method retrieves the loaded call using [pushAsyncCall](./../service/pushasynccall) and then start the video identification (redirects to platform test, then to the first available or requested operator).\n\n***Please note***: calls to \"service-asyncall\" will automatically redirect caller to LiveID + platform test so it can be provided as a link directly to the customer (eg: confirmation email of the appointment generated by the operator).\n",
        "tags": [
          "app"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "uId",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Unique id of the call to recover supplied by [pushAsyncCall](./../service/pushasynccall)"
          },
          {
            "in": "query",
            "name": "noDel",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "0",
                "1"
              ],
              "default": "0"
            },
            "description": "If set to \"1\" the async call is not removed after the link is used (default \"0\", the call is removed as soon as the page has been loaded)"
          },
          {
            "in": "query",
            "name": "id_operator2Call",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Identification code of the operator to whom the call will be directly assigned.\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` parameters are mutually exclusive)*\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available..\n"
          },
          {
            "in": "query",
            "name": "email_operator2Call",
            "required": false,
            "schema": {
              "type": "string",
              "format": "email"
            },
            "description": "Email of the operator to whom the call will be directly assigned.\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` parameters are mutually exclusive)*\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available..\n"
          },
          {
            "in": "query",
            "name": "extId_operator2Call",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "External ID of the operator to whom the call will be directly assigned.\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` parameters are mutually exclusive)*\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available.\n"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "The identification process page"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "A page describing the error (the call is not valid or expired)"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "A page describing the error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/app/service-start": {
      "post": {
        "operationId": "serviceStart",
        "summary": "service-start",
        "description": "Start the process for a video identification. It can be a live session with an operator or a self process, or a combination of both (in this case, a selection method should be discussed in advance with Namirial).\\\nAt the end of the process, or in case of errors, the page will be redirected to the `redirectUrl` (if specified) passing a `LiveIDPlusResult` POST parameter, containing the JSON result message in the same format specified in the [Call closing section](./../../../get-started/call-closing).\n\nThere are two ways to integrate LiveID+:\n- **standalone mode**: the call is launched in a new browser tab and provides a server-side callback and a rediderct URL for client-side callbacks;\n- **embedded mode**: the call is launched within an HTML iframe directly in the client procedure, allowing for client-side callbacks (in form of window.postMessage) as described in the [network and media test and call status check [Client side events section](./../../../get-started/events) and [Call closing section](./../../../get-started/call-closing)).\n\nIn case of embedded mode, the iframe must have `allow` property set to include geolocation, camera, and microphone access, as following:\n\n```allow=\"geolocation; camera; microphone\"```\n\nIf this API is used to start a single video identification process, the `id_process parameter` is mandatory.\\\nIf LiveID+ should automatically perform a check to decide whether to use a live process or a self process, the `id_process_live` and `id_process_self` are mandatory. The procedure to determine which process to choose has to be discussed with Namirial in the set up phase.\\\nThe `id_process` parameter and `id_process_self`, `id_process_live` couple are mutually exclusive.\n",
        "tags": [
          "app"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "oneOf": [
                      {
                        "type": "object",
                        "title": "Single process",
                        "required": [
                          "id_process",
                          "id_organization",
                          "json"
                        ],
                        "properties": {
                          "id_process": {
                            "type": "string",
                            "description": "Unique identifier of the identification process that will be performed.\\\n*(Provided by Namirial during the platform setup)*\n\n*(This parameter is mutually exclusive with `id_process_live` and `id_process_self`)*\n",
                            "format": "uuid"
                          }
                        }
                      },
                      {
                        "type": "object",
                        "title": "Self + live process combination",
                        "required": [
                          "id_process_self",
                          "id_process_live",
                          "id_organization",
                          "json"
                        ],
                        "properties": {
                          "id_process_self": {
                            "type": "string",
                            "description": "Unique identifier of the self identification process that will be performed.\\\n*(Provided by Namirial during the platform setup)*\n\n*(This parameter is mutually exclusive with `id_process`)*\n",
                            "format": "uuid"
                          },
                          "id_process_live": {
                            "type": "string",
                            "description": "Unique identifier of the live identification process that will be performed.\\\n*(Provided by Namirial during the platform setup)*\n\n*(This parameter is mutually exclusive with `id_process`)*\n",
                            "format": "uuid"
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "id_organization": {
                        "type": "string",
                        "description": "Identification code [CODE] of the calling organization.\\\n*(Provided by Namirial during the platform setup)*\n"
                      },
                      "external_id": {
                        "type": "string",
                        "maxLength": 100,
                        "description": "A custom ID to identify the call. It will be searchable in the reports (max 100 characters)"
                      },
                      "redirectUrl": {
                        "type": "string",
                        "description": "The url where the browser should be redirected when the process is completed or in case of errors. Data will be passed as POST parameters as specified in the [Call closing section](./../../../get-started/call-closing)\n",
                        "format": "uri"
                      },
                      "redirectMethod": {
                        "type": "string",
                        "description": "The HTTP method to use for the redirect.\n",
                        "enum": [
                          "GET",
                          "POST"
                        ]
                      },
                      "id_operator2Call": {
                        "type": "string",
                        "format": "uuid",
                        "description": "***Only for live processes***\\\nIdentification code of the operator to whom the call will be directly assigned.\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available.\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` and `direct` parameters are mutually esclusive)*\n"
                      },
                      "email_operator2Call": {
                        "type": "string",
                        "format": "email",
                        "description": "***Only for live processes***\\\nEmail of the operator to whom the call will be directly assigned.\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available.\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` and `direct` parameters are mutually esclusive)*\n"
                      },
                      "extId_operator2Call": {
                        "type": "string",
                        "description": "***Only for live processes***\\\nExternal ID of the operator to whom the call will be directly assigned.\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` and `direct` parameters are mutually esclusive)*\n"
                      },
                      "direct": {
                        "type": "string",
                        "format": "JWT",
                        "description": "***Only for live processes***\\\nUnique token sent to customer for calling a specified operator.\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` and `direct` parameters are mutually esclusive)*\n"
                      },
                      "opInfo": {
                        "type": "string",
                        "description": "***Only for live processes***\\\nUseful information to show to Operator before answering the call (max length: 100 chars).\n",
                        "maxLength": 100
                      },
                      "skipAVrecTest": {
                        "type": "boolean",
                        "description": "*Only for live processes*\\\nIf set to `true`, compatibility test will skip the audio/video recording customer's check.\n",
                        "default": false
                      },
                      "disableRTCTest": {
                        "type": "boolean",
                        "description": "*Only for live processes*\\\nIf set to `true`, compatibility test will skip the WebRTC check.\n\nIt's suggested to set to `true` this property ONLY for processes that doesn't need a video registration.\n",
                        "default": false
                      },
                      "json": {
                        "description": "**UTF-8 Base64** encoded JSON object containing all the configuration parameters for starting a call.\n\n**In case of preparing the call using [pushAsyncCall](./../service/pushasynccall), this parameter should not be base64 encoded, but directly passed as JSON**\n",
                        "$ref": "#/components/schemas/ServiceStartJson"
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "The identification process page"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "A page describing the error\n\n(missing or malformed parameters)\n"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "A page describing the error\n\n(some processes can have custom checks, if on of them fails the error is reported here)\n"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "A page describing the error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/app/service-webrtc-test": {
      "post": {
        "operationId": "serviceWebrtcTest",
        "deprecated": true,
        "summary": "service-webrtc-test",
        "description": "<div style=\"color:#A80000;background-color:#FFF0F0;border:1px solid;padding:0.5em;\"><b>service-webrtc-test</b> is in the process of being deprecated. For initial integration with LiveID+, it is strongly recommended to use the <a href=\"/products/liveidplus/2.1-test/enterprise/developer-documentation/api-definition/app/servicestart\">service-start</a> API.</div><br/>\n\nTo initiate a video identification, a request to the LiveID+ system has to be performed in order to check the compatibility of the customer's device with the platform. Only if this check is successful will the video identification process begin.\n\nThere are two modes in which the video identification call can be initiated:\n- **standalone mode**: the call is launched in a new browser tab and does not allow for client-side closing callbacks;\n- **embedded mode**: the call is launched within an HTML iframe directly in the client procedure, allowing for client-side callbacks (in form of window.postMessage) as described in the [Client side events section](./../../../get-started/events) and [Call closing section](./../../../get-started/call-closing)).\n\nIf you choose to use embedded mode, the iframe must have the `allow` property set to include geolocation, camera, and microphone access, as following:\\\n```allow=\"geolocation; camera; microphone\"```\n",
        "tags": [
          "app"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "title": "Plain JSON",
                    "required": [
                      "id_process",
                      "id_organization",
                      "json"
                    ],
                    "properties": {
                      "id_organization": {
                        "type": "string",
                        "description": "Identification code [CODE] of the calling organization.\\\n*(Provided by Namirial during the platform setup)*\n"
                      },
                      "id_process": {
                        "type": "string",
                        "description": "Unique identifier of the identification process that will be performed.\\\n*(Provided by Namirial during the platform setup)*\n",
                        "format": "uuid"
                      },
                      "external_id": {
                        "type": "string",
                        "maxLength": 100,
                        "description": "A custom ID to identify the call. It will be searchable in the reports (max 100 characters)"
                      },
                      "id_operator2Call": {
                        "type": "string",
                        "format": "uuid",
                        "description": "***Only for live processes***\\\nIdentification code of the operator to whom the call will be directly assigned.\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available.\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` and `direct` parameters are mutually esclusive)*\n"
                      },
                      "email_operator2Call": {
                        "type": "string",
                        "format": "email",
                        "description": "***Only for live processes***\\\nEmail of the operator to whom the call will be directly assigned.\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available.\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` and `direct` parameters are mutually esclusive)*\n"
                      },
                      "extId_operator2Call": {
                        "type": "string",
                        "description": "***Only for live processes***\\\nExternal ID of the operator to whom the call will be directly assigned.\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` and `direct` parameters are mutually esclusive)*\n"
                      },
                      "direct": {
                        "type": "string",
                        "format": "JWT",
                        "description": "***Only for live processes***\\\nUnique token sent to customer for calling a specified operator.\n\n***Please note***: if this parameter is set, the call will be automatically terminated with a KO if the operator doesn't answer, and it will not be assigned to any other operator available\n\n*(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call` and `direct` parameters are mutually esclusive)*\n"
                      },
                      "opInfo": {
                        "type": "string",
                        "description": "***Only for live processes***\\\nUseful information to show to Operator before answering the call (max length: 100 chars).\n",
                        "maxLength": 100
                      },
                      "skipAVrecTest": {
                        "type": "boolean",
                        "description": "***Only for live processes***\\\nIf set to `true`, compatibility test will skip the audio/video recording customer's check.\n",
                        "default": false
                      },
                      "disableRTCTest": {
                        "type": "boolean",
                        "description": "***Only for live processes***\\\nIf set to `true`, compatibility test will skip the WebRTC check.\nIt's suggested to set to `true` this property ONLY for processes that doesn't need a video registration.\n",
                        "default": false
                      },
                      "selfID": {
                        "type": "boolean",
                        "description": "If set to `true`, it starts a SelfID process.",
                        "default": false
                      },
                      "json": {
                        "$ref": "#/components/schemas/ServiceStartJson"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Base64 encoded JSON",
                    "required": [
                      "base64_params"
                    ],
                    "properties": {
                      "base64_params": {
                        "type": "string",
                        "description": "All the parameters provided as a single Base64 encoded JSON string (see Plain JSON Request Body Schema).\\\nIf `base64_params` is present, any other parameter will be ignored.\n",
                        "contentMediaType": "application/json",
                        "contentEncoding": "base64"
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "The identification process page"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string",
                  "description": "A page describing the error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/api/authenticate/genAPIToken": {
      "get": {
        "operationId": "genAPIToken",
        "summary": "genAPIToken",
        "description": "Retrieve a call specific access token for interaction with other LiveID+ integration features.",
        "tags": [
          "authenticate"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "idConference",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Unique id of the call"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "token": {
                          "type": "string",
                          "description": "Access token for the provided id conference"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/service/checkStatus": {
      "get": {
        "operationId": "checkStatus",
        "summary": "checkStatus",
        "description": "Check if the service is active",
        "tags": [
          "service"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "active": {
                          "type": "boolean",
                          "description": "Status of the service"
                        },
                        "message": {
                          "type": "string",
                          "description": "In case the service is down, a message explaining the reason"
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "service_up": {
                    "summary": "Service is up",
                    "value": {
                      "service": "/service/checkStatus",
                      "success": true,
                      "active": true
                    }
                  },
                  "service_down": {
                    "summary": "Service is down",
                    "value": {
                      "service": "/service/checkStatus",
                      "success": true,
                      "active": false,
                      "message": "The service is currently down for maintenance"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": []
      }
    },
    "/api/service/pushAsyncCall": {
      "post": {
        "operationId": "pushAsyncCall",
        "summary": "pushAsyncCall",
        "description": "In addition to *synchronous* call - where the customer initiate a call and is immediately redirected to the network and media test, then to the first available operator - LiveID+ also supports *asynchronous* calls.\\\nIn this mode, the customer submits their information to request a video identification, which an operator will handle at a later time (e.g.: through scheduled appointment).\\\nThis can be done using two methods: **pushAsyncCall** and **[service-asyncall](./../app/serviceasyncall)**.\n\n**pushAsyncCall** method puts a video identification call in the system without it being immediately redirected to platform test and then to the first available operator.\\\nCalls entered using **pushAsyncCall** are linked to the **unique ID** provided in the response and can then be initiated using [service-asyncall](./../app/serviceasyncall).\n",
        "tags": [
          "service"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "b64Data": {
                    "type": "string",
                    "description": "**UTF-8 Base64** encoded JSON object containing all the configuration parameters for starting a call.\\\nThe object to encode must be structured as follows:\n```\n{\n  id_organization: ...\n  id_process: ...\n  json: ...\n}\n```\nSee [service-webrtc-test](./../app/servicewebrtctest) or [service-start](./../app/servicestart) (depending on the `method` passed) for parameters details.\n\n**Given that all data is already encoded, base64 encoding of the `json` parameter is not required in case of `method=start`.**\n",
                    "contentMediaType": "application/json",
                    "contentEncoding": "base64"
                  },
                  "method": {
                    "type": "string",
                    "description": "The method used to start the call (`\"start\"` is preferred).\n- `\"live\"`: the call is started using [service-webrtc-test](./../app/servicewebrtctest)\n- `\"start\"`: the call is started using [service-start](./../app/servicestart)\n",
                    "enum": [
                      "live",
                      "start"
                    ],
                    "default": "live"
                  },
                  "expire": {
                    "type": "string",
                    "description": "Video identification call's expire date (after this date call will be deleted from system and will no longer usable).",
                    "format": "date"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "uId": {
                          "type": "string",
                          "description": "Unique id of the call"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": []
      }
    },
    "/api/service/delAsyncCall": {
      "delete": {
        "operationId": "delAsyncCall",
        "summary": "delAsyncCall",
        "description": "Delete an async call previously added in the system",
        "tags": [
          "service"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "uId",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Unique id of the call to delete supplied by [pushAsyncCall](./pushasynccall)"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultSuccessResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": []
      }
    },
    "/api/service/availableLanguages": {
      "post": {
        "operationId": "availableLanguages",
        "summary": "availableLanguages",
        "description": "Retrieve all the languages spoken by operators of a specific organization.",
        "tags": [
          "service"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "orgCode": {
                    "type": "string",
                    "description": "Organization code"
                  }
                },
                "required": [
                  "orgCode"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "languages": {
                          "type": "array",
                          "description": "array of ISO 639-1 language code",
                          "items": {
                            "type": "string"
                          },
                          "example": [
                            "en",
                            "it"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": []
      }
    },
    "/api/service/getDailyWaitingTimes": {
      "post": {
        "operationId": "getDailyWaitingTimes",
        "summary": "getDailyWaitingTimes",
        "description": "Retrieve the average daily waiting time of the last week (in seconds) and of the last 60 minutes, for a single organization",
        "tags": [
          "service"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "orgCode": {
                    "type": "string",
                    "description": "Organization identification code [CODE]"
                  }
                },
                "required": [
                  "orgCode"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "dailyWaitingData": {
                          "type": "object",
                          "description": "JSON string containing the average waiting times of the last week (per day) and of the last 60 minutes"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": []
      }
    },
    "/api/service/getAvailableOperators": {
      "post": {
        "operationId": "getAvailableOperators",
        "summary": "getAvailableOperators",
        "description": "Retrieve the number of the operators currently available to answer calls",
        "tags": [
          "service"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "orgCode": {
                    "type": "string",
                    "description": "Organization identification code [CODE]"
                  }
                },
                "required": [
                  "orgCode"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "availableOperators": {
                          "type": "number",
                          "description": "number of the operators currently available to answer calls"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": []
      }
    },
    "/api/service/getCallInfoUID": {
      "post": {
        "operationId": "getCallInfoUID",
        "summary": "getCallInfoUID",
        "description": "Retrieve the details about the last call related to the async UID passed.\n\n**To retrieve all the calls related to the async UID, use the [getAsyncRequestInfo](./../v2/getasyncrequestinfo) method of the v2 API.**\n",
        "tags": [
          "service"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "uId": {
                    "type": "string",
                    "description": "Unique id of the call to looking for, supplied by [pushAsyncCall](./pushasynccall)"
                  }
                },
                "required": [
                  "uId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Request success response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "id_conference": {
                          "type": "string",
                          "description": "The unique id of the call",
                          "format": "uuid"
                        },
                        "call_waiting_for_answer": {
                          "type": "boolean",
                          "description": "if `true` the call is waiting for an operator to answer"
                        },
                        "call_insert_date": {
                          "type": "string",
                          "description": "The date and time when the call was created in the LiveID+ async-call service",
                          "format": "date-time"
                        },
                        "call_expire_date": {
                          "type": "string",
                          "description": "The date and time of the call expiration",
                          "format": "date-time"
                        },
                        "call_start_date": {
                          "type": "string",
                          "description": "The date and time when the compatibility test was started",
                          "format": "date-time"
                        },
                        "call_answer_date": {
                          "type": "string",
                          "description": "The date and time when the call was answered by an operator",
                          "format": "date-time"
                        },
                        "call_end_date": {
                          "type": "string",
                          "description": "The date and time when the call was closed",
                          "format": "date-time"
                        },
                        "call_end_status": {
                          "type": "string",
                          "description": "The status of the call at the end\n\n- N > OK\n- A > Aborted by operator\n- K > System KO\n- S > Suspended\n",
                          "enum": [
                            "N",
                            "A",
                            "K",
                            "S"
                          ]
                        },
                        "customer_name": {
                          "type": "string",
                          "description": "customer name"
                        },
                        "customer_surname": {
                          "type": "string",
                          "description": "customer surname"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": []
      }
    },
    "/api/service/getQueue": {
      "post": {
        "operationId": "getQueue",
        "summary": "getQueue",
        "description": "Retrieve the number of people in queue for a specified process",
        "tags": [
          "service"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id_process": {
                    "type": "string",
                    "description": "Identification code of the video-id process",
                    "format": "uuid"
                  }
                },
                "required": [
                  "id_process"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "peopleQueue": {
                          "type": "number",
                          "description": "Number of the people in queue"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": []
      }
    },
    "/api/v1/conferenceData": {
      "get": {
        "operationId": "conferenceDataV1",
        "summary": "conferenceData",
        "description": "Retrieve LiveID+ video identification calls data\n\n***Notice***: for details about module structure provided in \"data\" parameter see this <a target=\"_blank\" href=\"/products/liveidplus/2.1-test/enterprise/get-started/conference-data-structure\">ConferenceData response: module structure</a>\n\n   <div style=\"background-color:rgba(255, 10, 10, 0.2); padding:10px; border:1px solid;\">This API has been deprecated and will be shut down soon (see the <a href=\"/products/liveidplus/2.1-test/enterprise/developer-documentation/api-definition/v1\">deprecation roadmap</a>).<br/>Please use the <a href=\"/products/liveidplus/2.1-test/enterprise/developer-documentation/api-definition/v2/conferenceData\">v2 version</a>. See the <a href=\"/products/liveidplus/2.1-test/enterprise/get-started/v1-to-v2-migration\">migration guide</a> for details.</div>\n",
        "deprecated": true,
        "tags": [
          "v1"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "module": {
                    "type": "string",
                    "description": "Id of the module to retrieve. If not provided, all the data of the call will be returned.",
                    "enum": [
                      "photo",
                      "formfilling"
                    ]
                  },
                  "token": {
                    "deprecated": true,
                    "type": "string",
                    "description": "Token provided on call closing or generated with [genAPIToken](./../authenticate/genapitoken) (*if not provided as header*)",
                    "format": "JWT"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "call_answer_date": {
                          "type": "string",
                          "description": "date when the call was answered by an operator",
                          "format": "datetime"
                        },
                        "call_end_date": {
                          "type": "string",
                          "description": "date when the call was closed",
                          "format": "datetime"
                        },
                        "call_last_activity": {
                          "type": "string",
                          "description": "date of the last activity on the call",
                          "format": "datetime"
                        },
                        "end_pattern": {
                          "$ref": "#/components/schemas/EndPattern"
                        },
                        "operator": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "Operator id",
                              "format": "uuid"
                            },
                            "name": {
                              "type": "string",
                              "description": "Operator name"
                            },
                            "external_id": {
                              "type": "string",
                              "description": "Operator external id"
                            }
                          }
                        },
                        "data": {
                          "type": "object",
                          "description": "json of the requested data"
                        }
                      }
                    }
                  ]
                }
              },
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary",
                  "description": "A zip file contaning the audit data requested"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ConferenceToken": []
          }
        ]
      }
    },
    "/api/v1/getAuditData": {
      "get": {
        "operationId": "getAuditDataV1V1",
        "summary": "getAuditData",
        "deprecated": true,
        "description": "Retrieve LiveID zip containing the audit data and identification call photo's.\n\n<div style=\"background-color:rgba(255, 10, 10, 0.2); padding:10px; border:1px solid;\">This API has been deprecated and will be shut down soon (see the <a href=\"/products/liveidplus/2.1-test/enterprise/developer-documentation/api-definition/v1\">deprecation roadmap</a>).<br/>Please use the <a href=\"/products/liveidplus/2.1-test/enterprise/developer-documentation/api-definition/v2/getauditdatav2\">v2 version</a>. See the <a href=\"/products/liveidplus/2.1-test/enterprise/get-started/v1-to-v2-migration\">migration guide</a> for details.</div>\n",
        "tags": [
          "v1"
        ],
        "parameters": [
          {
            "name": "idConference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Conference process id"
            }
          },
          {
            "name": "av",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Set to `\"1\"` to retrieve audio and video",
              "default": "0",
              "enum": [
                "0",
                "1"
              ]
            }
          },
          {
            "name": "token",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Token provided on call closing or generated with [genAPIToken](./../authenticate/genapitoken) (*if not provided as header*)",
              "format": "JWT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A zip file containing the audit data requested",
            "content": {
              "application/zip": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ConferenceToken": []
          }
        ]
      }
    },
    "/api/v1/deleteAuditData": {
      "delete": {
        "operationId": "deleteAuditDataV1",
        "summary": "deleteAuditData",
        "description": "Delete all the artifacts (audio, video, photos and shared documents) stored in LiveID+ relative to the served conference id.\nThe textual audit data won't be deleted; to force deleting the audit data and all the data stored in the database is available the \"eraseAll\" parameters.\n\n   <div style=\"background-color:rgba(255, 10, 10, 0.2); padding:10px; border:1px solid;\">This API has been deprecated and will be shut down soon. Please use the <a href=\"/products/liveidplus/2.1-test/enterprise/developer-documentation/api-definition/v2/deleteAuditData\">v2 version</a>. See the <a href=\"/products/liveidplus/2.1-test/enterprise/get-started/v1-to-v2-migration\">migration guide</a> for details.</div>\n",
        "deprecated": true,
        "tags": [
          "v1"
        ],
        "parameters": [
          {
            "name": "idConference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Conference process id",
              "format": "uuid"
            }
          },
          {
            "name": "eraseAll",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "If set to `\"1\"` will delete all the audit data and all the data stored in the database",
              "default": "0",
              "enum": [
                "0",
                "1"
              ]
            }
          },
          {
            "name": "token",
            "in": "query",
            "schema": {
              "deprecated": true,
              "type": "string",
              "description": "Token provided on call closing or generated with [genAPIToken](./../authenticate/genapitoken) (*if not provided as header*)",
              "format": "JWT"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultSuccessResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ConferenceToken": []
          }
        ]
      }
    },
    "/api/v1/checkStatus": {
      "get": {
        "operationId": "checkStatusV1",
        "summary": "checkStatus",
        "description": "Check if the service is active\n<div style=\"background-color:rgba(255, 10, 10, 0.2); padding:10px; border:1px solid;\">This API has been deprecated and will be shut down soon (see the <a href=\"/products/liveidplus/2.1-test/enterprise/developer-documentation/api-definition/v1\">deprecation roadmap</a>).<br/>Please use <a href=\"/products/liveidplus/2.1-test/enterprise/developer-documentation/api-definition/service/checkStatus\">service/checkStatus</a>. See the <a href=\"/products/liveidplus/2.1-test/enterprise/get-started/v1-to-v2-migration\">migration guide</a> for details.</div>",
        "tags": [
          "v1"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "active": {
                          "type": "boolean",
                          "description": "Status of the service"
                        },
                        "message": {
                          "type": "string",
                          "description": "In case the service is down, a message explaining the reason"
                        }
                      }
                    }
                  ]
                },
                "examples": {
                  "service_up": {
                    "summary": "Service is up",
                    "value": {
                      "service": "/checkStatus",
                      "success": true,
                      "active": true
                    }
                  },
                  "service_down": {
                    "summary": "Service is down",
                    "value": {
                      "service": "/checkStatus",
                      "success": true,
                      "active": false,
                      "message": "The service is currently down for maintenance"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [],
        "deprecated": true
      }
    },
    "/api/v2/conferenceData": {
      "get": {
        "operationId": "conferenceData",
        "summary": "conferenceData",
        "description": "Retrieve LiveID+ video identification calls data\n\n***Notice***: for details about module structure provided in \"data\" parameter see this <a target=\"_blank\" href=\"/products/liveidplus/enterprise/get-started/conference-data-structure\">ConferenceData response: module structure</a>\n",
        "tags": [
          "v2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "module": {
                    "type": "string",
                    "description": "Id of the module to retrieve. If not provided, all the data of the call will be returned.",
                    "enum": [
                      "photo",
                      "formfilling"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "call_answer_date": {
                          "type": "string",
                          "description": "date when the call was answered by an operator",
                          "format": "datetime"
                        },
                        "call_end_date": {
                          "type": "string",
                          "description": "date when the call was closed",
                          "format": "datetime"
                        },
                        "call_last_activity": {
                          "type": "string",
                          "description": "date of the last activity on the call",
                          "format": "datetime"
                        },
                        "end_pattern": {
                          "$ref": "#/components/schemas/EndPattern"
                        },
                        "operator": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "Operator id",
                              "format": "uuid"
                            },
                            "name": {
                              "type": "string",
                              "description": "Operator name"
                            },
                            "external_id": {
                              "type": "string",
                              "description": "Operator external id"
                            }
                          }
                        },
                        "data": {
                          "type": "object",
                          "description": "json of the requested data"
                        }
                      }
                    }
                  ]
                }
              },
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary",
                  "description": "A zip file contaning the audit data requested"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ConferenceToken": []
          }
        ]
      }
    },
    "/api/v2/deleteAuditData": {
      "delete": {
        "operationId": "deleteAuditData",
        "summary": "deleteAuditData",
        "description": "Delete all the artifacts (audio, video, photos and shared documents) stored in LiveID+ relative to the served conference id.\nThe textual audit data won't be deleted; to force deleting the audit data and all the data stored in the database is available the \"eraseAll\" parameters.\n",
        "tags": [
          "v2"
        ],
        "parameters": [
          {
            "name": "idConference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Conference process id",
              "format": "uuid"
            }
          },
          {
            "name": "eraseAll",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "If set to `\"1\"` will delete all the audit data and all the data stored in the database",
              "default": "0",
              "enum": [
                "0",
                "1"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultSuccessResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ConferenceToken": []
          }
        ]
      }
    },
    "/api/v2/getAuditData": {
      "get": {
        "operationId": "getAuditDataV2",
        "summary": "getAuditData",
        "description": "Retrieve LiveID zip containing the audit data and recognition call photo's. Unless otherwise specified with the direct parameter, an url will be returned where you can download the zip.\n",
        "tags": [
          "v2"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "av",
            "required": false,
            "schema": {
              "type": "string",
              "default": "0",
              "enum": [
                "0",
                "1"
              ]
            },
            "description": "Set to `1` to retrieve audio and video"
          },
          {
            "in": "query",
            "name": "direct",
            "required": false,
            "schema": {
              "type": "string",
              "default": "0",
              "enum": [
                "0",
                "1"
              ]
            },
            "description": "If set to `1` the result will directly return the zip file instead of a link to download it."
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "url": {
                          "type": "string",
                          "description": "the url of the zip file contaning the audit data requested or the zip file itself.",
                          "format": "url"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "302": {
            "description": "Redirect to the zip file",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary",
                  "description": "A zip file contaning the audit data requested"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ConferenceToken": []
          }
        ]
      }
    },
    "/api/v2/rejectCall": {
      "patch": {
        "operationId": "rejectCall",
        "summary": "rejectCall",
        "description": "Reject a call as if it was rejected by the system",
        "tags": [
          "v2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The id of the call to reject",
                    "format": "uuid"
                  },
                  "note": {
                    "type": "string",
                    "description": "The note to add to the call"
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "callUpdated": {
                          "type": "boolean",
                          "description": "If the call was updated"
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v2/getAsyncRequestInfo": {
      "get": {
        "operationId": "getAsyncRequestInfo",
        "summary": "getAsyncRequestInfo",
        "description": "Retrieve the details about all the calls related to the async UID passed",
        "tags": [
          "v2"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "uId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Unique id of the request to look for, supplied by [pushAsyncCall](./../service/pushasynccall)"
          }
        ],
        "responses": {
          "200": {
            "description": "Request success response",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/DefaultSuccessResponse"
                    },
                    {
                      "properties": {
                        "create_date": {
                          "type": "string",
                          "description": "Date the request was created.\n\n*If the call was started using the [service-asyncall](./../app/serviceasyncall) API without the `noDel` parameter set to `1`, this information is not available.*\n",
                          "format": "date-time"
                        },
                        "expire_date": {
                          "type": "string",
                          "description": "Expiration date of the request\n\n*If the call was started using the [service-asyncall](./../app/serviceasyncall) API without the `noDel` parameter set to `1`, this information is not available.*\n"
                        },
                        "customer_name": {
                          "type": "string",
                          "description": "Customer name"
                        },
                        "customer_surname": {
                          "type": "string",
                          "description": "Customer surname"
                        },
                        "customer_email": {
                          "type": "string",
                          "description": "Customer email",
                          "format": "email"
                        },
                        "calls": {
                          "type": "array",
                          "description": "List of calls related to the async UID",
                          "items": {
                            "type": "object",
                            "properties": {
                              "start_date": {
                                "type": "string",
                                "description": "Date the call was started",
                                "format": "date-time"
                              },
                              "answer_date": {
                                "type": "string",
                                "description": "Date the call was answered by an operator",
                                "format": "date-time"
                              },
                              "id": {
                                "type": "string",
                                "description": "ID of the videoID related to the provided uId (only present if the call as been answered)",
                                "format": "uuid"
                              },
                              "end_date": {
                                "type": "string",
                                "description": "Date the call was closed",
                                "format": "date-time"
                              },
                              "status": {
                                "$ref": "#/components/schemas/EndPattern"
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    },
    "/api/v2/registerAlertEmail": {
      "post": {
        "operationId": "registerAlertEmail",
        "summary": "registerAlertEmail",
        "description": "Register one or more email addresses to receive alerts about the server callbacks of a process.<br><br>\n**Pay attention**: each registration will override the previous email address registered for the process.\n",
        "tags": [
          "v2"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "processId": {
                    "type": "string",
                    "description": "The id of the process to monitor",
                    "format": "uuid"
                  },
                  "email": {
                    "type": "string",
                    "description": "The email address to register (could be a list of emails separated by commas)"
                  }
                },
                "required": [
                  "processId",
                  "email"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DefaultSuccessResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundErrorResponse"
          },
          "500": {
            "$ref": "#/components/responses/ServerErrorResponse"
          }
        },
        "security": [
          {
            "ApiKeyAuth": []
          }
        ]
      }
    }
  }
}