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.


    You 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 


            **For security reasons, the endpoint must be https and has to be
            approved by Namirial in advance** 


            Any request for new endpoints can be sent to
            liveidplus.support@namirial.com, specifying the organization code. 


            One 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.

                    If set to "operator" the field will be visible only to the
                    operator
                  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` Closed succesfully
        - `A` Aborted by operator
        - `K` System KO
        - `S` Suspended
        - `ACTIVE` Still running
        - `EXPIRED` Expired (no one answered)
        - `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.


        **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).


        ***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).
      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.


            *(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call`
            parameters are mutually exclusive)*


            ***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..
        - 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.


            *(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call`
            parameters are mutually exclusive)*


            ***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..
        - in: query
          name: extId_operator2Call
          required: false
          schema:
            type: string
          description: >
            External ID of the operator to whom the call will be directly
            assigned.


            *(`id_operator2Call`, `email_operator2Call`, `extId_operator2Call`
            parameters are mutually exclusive)*


            ***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.
      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).\

        At 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).


        There are two ways to integrate LiveID+:

        - **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;

        - **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)).


        In case of embedded mode, the iframe must have `allow` property set to
        include geolocation, camera, and microphone access, as following:


        ```allow="geolocation; camera; microphone"```


        If this API is used to start a single video identification process, the
        `id_process parameter` is mandatory.\

        If 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.\

        The `id_process` parameter and `id_process_self`, `id_process_live`
        couple are mutually exclusive.
      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.\

                            *(Provided by Namirial during the platform setup)*


                            *(This parameter is mutually exclusive with
                            `id_process_live` and `id_process_self`)*
                          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.\

                            *(Provided by Namirial during the platform setup)*


                            *(This parameter is mutually exclusive with
                            `id_process`)*
                          format: uuid
                        id_process_live:
                          type: string
                          description: >
                            Unique identifier of the live identification process
                            that will be performed.\

                            *(Provided by Namirial during the platform setup)*


                            *(This parameter is mutually exclusive with
                            `id_process`)*
                          format: uuid
                - type: object
                  properties:
                    id_organization:
                      type: string
                      description: |
                        Identification code [CODE] of the calling organization.\
                        *(Provided by Namirial during the platform setup)*
                    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)
                      format: uri
                    redirectMethod:
                      type: string
                      description: |
                        The HTTP method to use for the redirect.
                      enum:
                        - GET
                        - POST
                    id_operator2Call:
                      type: string
                      format: uuid
                      description: >
                        ***Only for live processes***\

                        Identification code of the operator to whom the call
                        will be directly assigned.


                        ***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.


                        *(`id_operator2Call`, `email_operator2Call`,
                        `extId_operator2Call` and `direct` parameters are
                        mutually esclusive)*
                    email_operator2Call:
                      type: string
                      format: email
                      description: >
                        ***Only for live processes***\

                        Email of the operator to whom the call will be directly
                        assigned.


                        ***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.


                        *(`id_operator2Call`, `email_operator2Call`,
                        `extId_operator2Call` and `direct` parameters are
                        mutually esclusive)*
                    extId_operator2Call:
                      type: string
                      description: >
                        ***Only for live processes***\

                        External ID of the operator to whom the call will be
                        directly assigned.


                        ***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


                        *(`id_operator2Call`, `email_operator2Call`,
                        `extId_operator2Call` and `direct` parameters are
                        mutually esclusive)*
                    direct:
                      type: string
                      format: JWT
                      description: >
                        ***Only for live processes***\

                        Unique token sent to customer for calling a specified
                        operator.


                        ***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


                        *(`id_operator2Call`, `email_operator2Call`,
                        `extId_operator2Call` and `direct` parameters are
                        mutually esclusive)*
                    opInfo:
                      type: string
                      description: >
                        ***Only for live processes***\

                        Useful information to show to Operator before answering
                        the call (max length: 100 chars).
                      maxLength: 100
                    skipAVrecTest:
                      type: boolean
                      description: >
                        *Only for live processes*\

                        If set to `true`, compatibility test will skip the
                        audio/video recording customer's check.
                      default: false
                    disableRTCTest:
                      type: boolean
                      description: >
                        *Only for live processes*\

                        If set to `true`, compatibility test will skip the
                        WebRTC check.


                        It's suggested to set to `true` this property ONLY for
                        processes that doesn't need a video registration.
                      default: false
                    json:
                      description: >
                        **UTF-8 Base64** encoded JSON object containing all the
                        configuration parameters for starting a call.


                        **In case of preparing the call using
                        [pushAsyncCall](./../service/pushasynccall), this
                        parameter should not be base64 encoded, but directly
                        passed as JSON**
                      $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

                  (missing or malformed parameters)
        '409':
          description: Conflict
          content:
            text/html:
              schema:
                type: string
                description: >
                  A page describing the error


                  (some processes can have custom checks, if on of them fails
                  the error is reported here)
        '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/>


        To 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.


        There are two modes in which the video identification call can be
        initiated:

        - **standalone mode**: the call is launched in a new browser tab and
        does not allow for client-side closing callbacks;

        - **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)).


        If you choose to use embedded mode, the iframe must have the `allow`
        property set to include geolocation, camera, and microphone access, as
        following:\

        ```allow="geolocation; camera; microphone"```
      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.\
                        *(Provided by Namirial during the platform setup)*
                    id_process:
                      type: string
                      description: >
                        Unique identifier of the identification process that
                        will be performed.\

                        *(Provided by Namirial during the platform setup)*
                      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***\

                        Identification code of the operator to whom the call
                        will be directly assigned.


                        ***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.


                        *(`id_operator2Call`, `email_operator2Call`,
                        `extId_operator2Call` and `direct` parameters are
                        mutually esclusive)*
                    email_operator2Call:
                      type: string
                      format: email
                      description: >
                        ***Only for live processes***\

                        Email of the operator to whom the call will be directly
                        assigned.


                        ***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.


                        *(`id_operator2Call`, `email_operator2Call`,
                        `extId_operator2Call` and `direct` parameters are
                        mutually esclusive)*
                    extId_operator2Call:
                      type: string
                      description: >
                        ***Only for live processes***\

                        External ID of the operator to whom the call will be
                        directly assigned.


                        ***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


                        *(`id_operator2Call`, `email_operator2Call`,
                        `extId_operator2Call` and `direct` parameters are
                        mutually esclusive)*
                    direct:
                      type: string
                      format: JWT
                      description: >
                        ***Only for live processes***\

                        Unique token sent to customer for calling a specified
                        operator.


                        ***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


                        *(`id_operator2Call`, `email_operator2Call`,
                        `extId_operator2Call` and `direct` parameters are
                        mutually esclusive)*
                    opInfo:
                      type: string
                      description: >
                        ***Only for live processes***\

                        Useful information to show to Operator before answering
                        the call (max length: 100 chars).
                      maxLength: 100
                    skipAVrecTest:
                      type: boolean
                      description: >
                        ***Only for live processes***\

                        If set to `true`, compatibility test will skip the
                        audio/video recording customer's check.
                      default: false
                    disableRTCTest:
                      type: boolean
                      description: >
                        ***Only for live processes***\

                        If set to `true`, compatibility test will skip the
                        WebRTC check.

                        It's suggested to set to `true` this property ONLY for
                        processes that doesn't need a video registration.
                      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).\

                        If `base64_params` is present, any other parameter will
                        be ignored.
                      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.\

        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 scheduled appointment).\

        This can be done using two methods: **pushAsyncCall** and
        **[service-asyncall](./../app/serviceasyncall)**.


        **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.\

        Calls entered using **pushAsyncCall** are linked to the **unique ID**
        provided in the response and can then be initiated using
        [service-asyncall](./../app/serviceasyncall).
      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.\

                    The object to encode must be structured as follows:

                    ```

                    {
                      id_organization: ...
                      id_process: ...
                      json: ...
                    }

                    ```

                    See [service-webrtc-test](./../app/servicewebrtctest) or
                    [service-start](./../app/servicestart) (depending on the
                    `method` passed) for parameters details.


                    **Given that all data is already encoded, base64 encoding of
                    the `json` parameter is not required in case of
                    `method=start`.**
                  contentMediaType: application/json
                  contentEncoding: base64
                method:
                  type: string
                  description: >
                    The method used to start the call (`"start"` is preferred).

                    - `"live"`: the call is started using
                    [service-webrtc-test](./../app/servicewebrtctest)

                    - `"start"`: the call is started using
                    [service-start](./../app/servicestart)
                  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.


        **To retrieve all the calls related to the async UID, use the
        [getAsyncRequestInfo](./../v2/getasyncrequestinfo) method of the v2
        API.**
      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 > OK
                          - A > Aborted by operator
                          - K > System KO
                          - S > Suspended
                        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


        ***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>

           <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>
      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.


        <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>
      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.

        The 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.

           <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>
      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

        <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


        ***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>
      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.

        The 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.
      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.
      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.


                          *If the call was started using the
                          [service-asyncall](./../app/serviceasyncall) API
                          without the `noDel` parameter set to `1`, this
                          information is not available.*
                        format: date-time
                      expire_date:
                        type: string
                        description: >
                          Expiration date of the request


                          *If the call was started using the
                          [service-asyncall](./../app/serviceasyncall) API
                          without the `noDel` parameter set to `1`, this
                          information is not available.*
                      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>

        **Pay attention**: each registration will override the previous email
        address registered for the process.
      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: []
