Nfon Customer Devices API

The Customer Devices API from Nfon — 20 operation(s) for customer devices.

OpenAPI Specification

nfon-customer-devices-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  description: 'The NFON Call History API provides endpoints for retrieving, streaming, and deleting call history records for an authenticated NFON Cloud Telephony user.


    This API is currently offered as part of **Login with NFON (Early Access)**. As an early access offering, the API is subject to change. Updates may occur on short notice, though we strive to provide advance notice where possible.


    For more information, see: https://www.nfon.com/en/integrations/login-with-nfon/'
  title: NFON Call History Accounts Customer Devices API
  version: 2.0-early-access
  termsOfService: https://www.nfon.com/en/legal/gtc
  contact:
    name: NFON
    email: integration@nfon.com
  license:
    name: NFON proprietary
servers:
- url: https://api.nfon.com/call-history
tags:
- name: Customer Devices
paths:
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{baseId}/license-keys:
    get:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: get_40
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                $ref: '#/components/schemas/NfonApiCollectionResponse'
          description: Success
        '403':
          description: Insufficient permissions
    post:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/BaseLicenseCreateRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: post_11
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '403':
          description: Insufficient permissions
        '400':
          description: Validation error
        '201':
          description: Created
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{deviceId}:
    put:
      requestBody:
        content:
          '*/*':
            schema:
              oneOf:
              - $ref: '#/components/schemas/ExternalLineDevicePUTRequest'
              - $ref: '#/components/schemas/StandardDevicePUTRequest'
              - $ref: '#/components/schemas/UnprovisionedSipDevicePUTRequest'
              - $ref: '#/components/schemas/UpdateOperatorPanelRequest'
              - $ref: '#/components/schemas/XCAPIDevicePUTRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceId
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      tags:
      - Customer Devices
      operationId: put_16
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Updated
        '400':
          description: Validation error
        '403':
          description: Insufficient permissions
    delete:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceId
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      tags:
      - Customer Devices
      operationId: delete_12
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Deleted
        '403':
          description: Insufficient permissions
    get:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceId
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      tags:
      - Customer Devices
      operationId: get_47
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                $ref: '#/components/schemas/NfonApiResponse'
              example:
                links:
                - href: /api/customers/K1234/device-types/XCAPI
                  rel: deviceType
                - href: /api/customers/K1234/sites/SF-001
                  rel: site
                - href: /api/customers/K1234
                  rel: customer
                - href: /api/customers/K1234/devices/activation/XCAPI-001
                  rel: activation
                - href: /api/customers/K1234/devices/xcapi/XCAPI-001/site-options
                  rel: siteOptions
                data:
                - value: 2
                  name: concurrentLines
                - value: 'true'
                  name: setE164DidInTo
                - value: ALLOW
                  name: cidScreening
                - value: true
                  name: useSiteOptionsFromSite
                href: /api/customers/example-id/devices/example-id/example-id
          description: Success
        '403':
          description: Insufficient permissions
        '404':
          description: Not found
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{deviceId}/site-options:
    put:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/DeviceSiteOptionsPUTRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceId
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: put_13
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Updated
        '400':
          description: Validation error
        '403':
          description: Insufficient permissions
    delete:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceId
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: delete_8
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Deleted
        '403':
          description: Insufficient permissions
    get:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceId
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: get_44
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                $ref: '#/components/schemas/NfonApiResponse'
          description: Success
        '403':
          description: Insufficient permissions
        '404':
          description: Not found
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{uniqueIdentifier}/activate:
    put:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/DeviceActivationRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: post_6
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Updated
        '400':
          description: Validation error
        '403':
          description: Insufficient permissions
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{uniqueIdentifier}/activation-credentials-renewal:
    put:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/DeviceActivationCredentialsRenewalRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: put_7
      security:
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Updated
        '400':
          description: Validation error
        '403':
          description: Insufficient permissions
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{uniqueIdentifier}/activation-pin-renewal:
    put:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/DeviceActivationPinRenewalRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: put_8
      security:
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Updated
        '400':
          description: Validation error
        '403':
          description: Insufficient permissions
  /tenants/{participantExternalIdentifier}/devices/{uniqueIdentifier}:
    delete:
      summary: Delete device by unique identifier
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        description: Unique identifier of the device (MAC address or softphone identifier)
        name: uniqueIdentifier
      tags:
      - Customer Devices
      description: Deactivates and deletes a device identified by its unique identifier (e.g. MAC address) for the given customer. Handles phone-extension unbinding and logs the deletion to PORTAL_LOG.
      operationId: delete_4
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Device not found for the given unique identifier and customer
        '204':
          description: Device successfully deleted
        '400':
          description: Device cannot be deleted (e.g. same-month deactivation rule)
  /tenants/{participantExternalIdentifier}/devices/{uniqueIdentifier}/bypass-authentication:
    post:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/DeviceBypassAuthenticationRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: post_7
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '403':
          description: Insufficient permissions
        '400':
          description: Validation error
        '201':
          description: Created
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{baseId}/license-keys/{licenseId}:
    put:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/BaseLicenseUpdateRequest'
      parameters:
      - schema:
          format: int64
          type: integer
        required: true
        in: path
        name: licenseId
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: put_12
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Updated
        '400':
          description: Validation error
        '403':
          description: Insufficient permissions
    delete:
      parameters:
      - schema:
          format: int64
          type: integer
        required: true
        in: path
        name: licenseId
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: delete_7
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Deleted
        '403':
          description: Insufficient permissions
    get:
      parameters:
      - schema:
          format: int64
          type: integer
        required: true
        in: path
        name: licenseId
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: get_41
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                $ref: '#/components/schemas/NfonApiResponse'
              example:
                links: {}
                data:
                - value: ABCD-1234-EFGH-5678
                  name: licenseKey
                - value: Premium License
                  name: licenseType
                href: /api/customers/example-id/devices/example-id/example-id/license-keys/example-id
          description: Success
        '403':
          description: Insufficient permissions
        '404':
          description: Not found
  /tenants/{participantExternalIdentifier}/devices/{uniqueIdentifier}/reset-authentication:
    post:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/DeviceResetAuthenticationRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: post_8
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '403':
          description: Insufficient permissions
        '400':
          description: Validation error
        '201':
          description: Created
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/available-phones:
    get:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      tags:
      - Customer Devices
      operationId: get_42
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                $ref: '#/components/schemas/NfonApiCollectionResponse'
          description: Success
        '403':
          description: Insufficient permissions
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{baseId}/handsets/{handsetId}:
    put:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/HandsetDeviceUpdateRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: handsetId
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: put_11
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Updated
        '400':
          description: Validation error
        '403':
          description: Insufficient permissions
    delete:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: handsetId
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: delete_6
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Deleted
        '403':
          description: Insufficient permissions
    get:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: handsetId
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: get_39
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                $ref: '#/components/schemas/NfonApiResponse'
              example:
                links:
                - href: /api/customers/K1234/devices/bases/00:15:65:A1:B2:C3
                  rel: base
                - href: /api/customers/K1234/devices/activation/00:15:65:A1:B2:C3-1
                  rel: activation
                - href: /api/customers/K1234/phone-extensions/100
                  rel: extension
                data:
                - value: '1'
                  name: port
                - value: '1234'
                  name: bluetoothPin
                - value: '3'
                  name: ringtoneInternal
                - value: '5'
                  name: ringtoneExternal
                - value: '2'
                  name: groupQueueSkillRingtone
                - value: 'OFF'
                  name: suppressLineno
                href: /api/customers/example-id/devices/example-id/example-id/handsets/example-id
          description: Success
        '403':
          description: Insufficient permissions
        '404':
          description: Not found
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{baseId}/handsets:
    get:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: get_38
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                $ref: '#/components/schemas/NfonApiCollectionResponse'
          description: Success
        '403':
          description: Insufficient permissions
    post:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/HandsetDeviceRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: deviceType
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: baseId
      tags:
      - Customer Devices
      operationId: post_10
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '403':
          description: Insufficient permissions
        '400':
          description: Validation error
        '201':
          description: Created
  /tenants/{participantExternalIdentifier}/devices:
    get:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: get_35
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                type: object
          description: Success
        '403':
          description: Insufficient permissions
  /tenants/{participantExternalIdentifier}/devices/lync/{uniqueIdentifier}:
    delete:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: delete_9
      security:
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Deleted
        '403':
          description: Insufficient permissions
    get:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: get_43
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                $ref: '#/components/schemas/NfonApiResponse'
              example:
                links:
                - href: /api/customers/K1234/device-types/Lync
                  rel: deviceType
                - href: /api/customers/K1234/sites/SF001
                  rel: site
                - href: /api/customers/K1234
                  rel: customer
                - href: /api/customers/K1234/phone-extensions/100
                  rel: extension
                data:
                - value: lync-user-01@sip.example.com
                  name: uniqueIdentifier
                href: /api/customers/example-id/devices/lync/example-id
          description: Success
        '403':
          description: Insufficient permissions
        '404':
          description: Not found
  /tenants/{participantExternalIdentifier}/devices/softphone/{uniqueIdentifier}:
    put:
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/SoftphoneDevicePUTRequest'
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: put_15
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Updated
        '400':
          description: Validation error
        '403':
          description: Insufficient permissions
    delete:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: delete_11
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '404':
          description: Not found
        '204':
          description: Deleted
        '403':
          description: Insufficient permissions
    get:
      parameters:
      - schema:
          type: string
        required: true
        in: path
        name: uniqueIdentifier
      - schema:
          type: string
        required: true
        in: path
        name: participantExternalIdentifier
      tags:
      - Customer Devices
      operationId: get_46
      security:
      - oauth2:
        - tenant.manager
      - oauth2:
        - tenant.system-integrator
      - oauth2:
        - tenant.operator
      - oauth2:
        - tenant.admin
      responses:
        '200':
          content:
            application/vnd.collection.next+json:
              schema:
                $ref: '#/components/schemas/NfonApiResponse'
              example:
                links:
                - href: /api/customers/K1234/device-types/NFON%20Softphone
                  rel: deviceType
                - href: /api/customers/K1234/phone-extensions/100
                  rel: extension
                - href: /api/customers/K1234/sites/SF-001
                  rel: site
                - href: /api/customers/K1234
                  rel: customer
                - href: /api/customers/K1234/devices/activation/SP-001-ABC
                  rel: activation
                - href: /api/customers/K1234/devices/softphone/SP-001-ABC/site-options
                  rel: siteOptions
                data:
                - value: SP-001-ABC
                  name: uniqueIdentifier
                - value: 2
                  name: concurrentLines
                - value: true
                  name: useSiteOptionsFromSite
                - value: 'OFF'
                  name: suppressLineno
                - value: Office softphone
                  name: note
                - value: Apple
                  name: manufacturer
                - value: iPhone 14
                  name: model
                - value: iOS 17.0
                  name: operatingSystem
                - value: '+491701234567'
                  name: mobilePhoneNumber
                href: /api/customers/example-id/devices/softphone/example-id
          description: Success
        '403':
          description: Insufficient permissions
        '404':
          description: Not found
  /tenants/{participantExternalIdentifier}/devices/{deviceType}/{baseId}:
    put:
      requestBody:
        content:
          '*/*':
            schema:
             

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nfon/refs/heads/main/openapi/nfon-customer-devices-api-openapi.yml