Lightspeed Staff API

Staff API. Authorisation Code grant type is required for this API with permission ROLE_CONFIG_USERS.

OpenAPI Specification

lightspeed-pos-staff-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 1.0.0
  title: Lightspeed Restaurant K Series Account Staff API
  description: '**Lightspeed Restaurant** offers a **REST API** in order to communicate with the data in the system. These APIs are built using the RESTful standards and adhere to the basic verb interactions as defined by the REST standard.

    Detailed developer guides can be found in the [Lightspeed Restaurant API Portal](https://api-portal.lsk.lightspeed.app/).

    These services are in continuous development and subject to change. Please find our versioning policy [here](https://api-portal.lsk.lightspeed.app/quick-start/versioning).

    '
  x-logo:
    altText: Lightspeed Commerce
    url: static/lightspeed@2x.png
  contact:
    name: Lightspeed Commerce
    url: https://api-portal.lsk.lightspeed.app/
  x-generated-from: documentation
  x-last-validated: '2026-06-02'
  x-source-url: https://api-docs.lsk.lightspeed.app/source.json
servers:
- url: https://api.trial.lsk.lightspeed.app
  description: Demo URL
  x-bump-branch-name: demo
- url: https://api.lsk.lightspeed.app
  description: Production URL
  x-bump-branch-name: prod
tags:
- name: Staff
  description: Staff API. Authorisation Code grant type is required for this API with permission ROLE_CONFIG_USERS.
paths:
  /staff/v1/businessLocations/{businessLocationId}/shift:
    get:
      tags:
      - Staff
      summary: Lightspeed Get Shifts
      operationId: staff-apiGetShift
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessLocationId'
      - $ref: '#/components/parameters/staff-apiPage'
      - $ref: '#/components/parameters/staff-apiSize'
      - $ref: '#/components/parameters/staff-apiSortByShift'
      - $ref: '#/components/parameters/staff-apiStartTime'
      - $ref: '#/components/parameters/staff-apiEndTime'
      - $ref: '#/components/parameters/staff-apiStaffId'
      responses:
        '200':
          description: List of shifts with related links.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/staff-apiResponseSchema'
                - type: object
                  properties:
                    data:
                      type: object
                      properties:
                        shifts:
                          type: array
                          items:
                            $ref: '#/components/schemas/staff-apiShift'
              examples:
                Staff-apiGetShift200Example:
                  summary: Default staff-apiGetShift 200 response
                  x-microcks-default: true
                  value:
                    data:
                      shifts:
                      - uuid: REcdfpCwQJKUR53gdzIk5Q==
                        businessId: 12345
                        businessLocationId: 1234567890
                        deviceId: 54321
                        staffId: 1234
                        declaredCashTips: '10.00'
                        dateInUTC: '2020-01-01T00:00:00Z'
                        events: []
                    links:
                      first:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      self:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      next:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
                      last:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
                    page:
                      page: 1
                      size: 10
                      totalElements: 100
                      totalPages: 10
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/userTypes/POS:
    get:
      tags:
      - Staff
      summary: Lightspeed Get All POS Users
      operationId: staff-apiGetPOSStaff
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessLocationId'
      - $ref: '#/components/parameters/staff-apiPage'
      - $ref: '#/components/parameters/staff-apiSize'
      - $ref: '#/components/parameters/staff-apiSortByStaff'
      - name: isActive
        description: Filter on active status.
        in: query
        schema:
          type: boolean
      - name: startDate
        description: Filter on user start date. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format).
        in: query
        schema:
          type: string
          format: date-time
      - name: endDate
        description: Filter on user end date. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format).
        in: query
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Staff List
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/staff-apiResponseSchema'
                - type: object
                  properties:
                    data:
                      type: object
                      properties:
                        staff:
                          type: array
                          items:
                            $ref: '#/components/schemas/staff-apiPOSStaff'
              examples:
                Staff-apiGetPOSStaff200Example:
                  summary: Default staff-apiGetPOSStaff 200 response
                  x-microcks-default: true
                  value:
                    data:
                      staff:
                      - staffId: {}
                        username: {}
                        userTypes: []
                        firstName: {}
                        lastName: {}
                        active: {}
                        pinCodeSet: {}
                        createdOn: {}
                        modifiedOn: {}
                        businessId: {}
                        businessLocationId: {}
                        groups: []
                        reportAccess: []
                        roles: []
                    links:
                      first:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      self:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      next:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
                      last:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
                    page:
                      page: 1
                      size: 10
                      totalElements: 100
                      totalPages: 10
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      tags:
      - Staff
      summary: Lightspeed Create POS User
      operationId: staff-apiCreatePOSStaff
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessLocationId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/staff-apiCreatePosStaffDto'
            examples:
              Staff-apiCreatePOSStaffRequestExample:
                summary: Default staff-apiCreatePOSStaff request
                x-microcks-default: true
                value:
                  username: John Doe
                  pinCode: '1234'
                  firstName: John
                  lastName: Doe
                  active: true
                  visible: true
                  group: 736
                  reportAccess: STAFF_REPORT_OWN_ACCESS
                  roles: []
      responses:
        '201':
          description: User created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/staff-apiStaff'
              examples:
                Staff-apiCreatePOSStaff201Example:
                  summary: Default staff-apiCreatePOSStaff 201 response
                  x-microcks-default: true
                  value:
                    staffId: 1234
                    username: John Doe
                    userTypes:
                    - BACK_OFFICE
                    firstName: John
                    lastName: Doe
                    email: guest@example.com
                    active: true
                    pinCodeSet: true
                    createdOn: '2026-03-15T14:30:00Z'
                    modifiedOn: '2026-03-15T14:30:00Z'
                    businessId: 12345
                    businessLocationId: 1234567890
                    groups:
                    - id: 1234
                      name: Bar Staff
                    reportAccess:
                    - STAFF_REPORT_OWN_ACCESS
                    roles:
                    - id: 1234
                      name: ROLE_CAN_LOGIN
        '400':
          description: Bad request. Invalid input parameters.
        '401':
          description: Authentication failed.
        '403':
          description: Access Denied.
        '500':
          description: Internal Server Error.
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/userTypes/POS/{staffId}:
    put:
      tags:
      - Staff
      summary: Lightspeed Update POS User
      operationId: staff-apiUpdatePOSStaff
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessLocationId'
      - name: staffId
        in: path
        required: true
        description: The unique identifier for the user.
        schema:
          type: integer
          format: int64
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/staff-apiUpdatePosStaffDto'
            examples:
              Staff-apiUpdatePOSStaffRequestExample:
                summary: Default staff-apiUpdatePOSStaff request
                x-microcks-default: true
                value:
                  username: John Doe
                  pinCode: '1234'
                  firstName: John
                  lastName: Doe
                  active: false
                  visible: false
                  group: -1
                  reportAccess: example
                  roles:
                  - example
      responses:
        '201':
          description: User updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/staff-apiStaff'
              examples:
                Staff-apiUpdatePOSStaff201Example:
                  summary: Default staff-apiUpdatePOSStaff 201 response
                  x-microcks-default: true
                  value:
                    staffId: 1234
                    username: John Doe
                    userTypes:
                    - BACK_OFFICE
                    firstName: John
                    lastName: Doe
                    email: guest@example.com
                    active: true
                    pinCodeSet: false
                    createdOn: '2026-03-15T14:30:00Z'
                    modifiedOn: '2026-03-15T14:30:00Z'
                    businessId: 12345
                    businessLocationId: 1234567890
                    groups:
                    - id: 1234
                      name: Bar Staff
                    reportAccess:
                    - STAFF_REPORT_OWN_ACCESS
                    roles:
                    - id: 1234
                      name: ROLE_CAN_LOGIN
        '400':
          description: Bad request. Invalid input parameters.
        '401':
          description: Authentication failed.
        '403':
          description: Access Denied.
        '500':
          description: Internal Server Error.
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/userTypes/BACK_OFFICE:
    get:
      tags:
      - Staff
      summary: Lightspeed Get All Back Office Users
      operationId: staff-apiGetBackOfficeStaff
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessLocationId'
      - $ref: '#/components/parameters/staff-apiPage'
      - $ref: '#/components/parameters/staff-apiSize'
      - $ref: '#/components/parameters/staff-apiSortByStaff'
      - name: email
        in: query
        description: Filter on email address.
        schema:
          type: string
          format: email
      - name: isActive
        description: Filter on active status.
        in: query
        schema:
          type: boolean
      - name: startDate
        description: Filter on user start date. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format).
        in: query
        schema:
          type: string
          format: date-time
      - name: endDate
        description: Filter on user end date. The format should be `yyyy-MM-dd'T'HH:mm:ss` (ISO 8601 format).
        in: query
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Staff List
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/staff-apiResponseSchema'
                - type: object
                  properties:
                    data:
                      type: object
                      properties:
                        staff:
                          type: array
                          items:
                            $ref: '#/components/schemas/staff-apiBOStaff'
              examples:
                Staff-apiGetBackOfficeStaff200Example:
                  summary: Default staff-apiGetBackOfficeStaff 200 response
                  x-microcks-default: true
                  value:
                    data:
                      staff:
                      - staffId: {}
                        userTypes: []
                        firstName: {}
                        lastName: {}
                        email: {}
                        active: {}
                        createdOn: {}
                        modifiedOn: {}
                        businessId: {}
                        businessLocationId: {}
                        groups: []
                        reportAccess: []
                        roles: []
                    links:
                      first:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      self:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      next:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
                      last:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
                    page:
                      page: 1
                      size: 10
                      totalElements: 100
                      totalPages: 10
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/staff/{staffId}:
    get:
      tags:
      - Staff
      summary: Lightspeed Get Single User
      operationId: staff-apiGetSingleStaff
      parameters:
      - name: businessLocationId
        in: path
        description: The unique identifier for the business location.
        required: true
        schema:
          type: integer
          format: int64
      - name: staffId
        in: path
        description: The unique identifier for the user.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: User object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/staff-apiStaff'
              examples:
                Staff-apiGetSingleStaff200Example:
                  summary: Default staff-apiGetSingleStaff 200 response
                  x-microcks-default: true
                  value:
                    staffId: 1234
                    username: John Doe
                    userTypes:
                    - API
                    firstName: John
                    lastName: Doe
                    email: guest@example.com
                    active: true
                    pinCodeSet: false
                    createdOn: '2026-03-15T14:30:00Z'
                    modifiedOn: '2026-03-15T14:30:00Z'
                    businessId: 12345
                    businessLocationId: 1234567890
                    groups:
                    - id: 1234
                      name: Bar Staff
                    reportAccess:
                    - STAFF_REPORT_OWN_ACCESS
                    roles:
                    - id: 1234
                      name: ROLE_CAN_LOGIN
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/groups:
    get:
      tags:
      - Staff
      summary: Lightspeed Get All User Groups
      operationId: staff-apiGetPosUserGroups
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessLocationId'
      - $ref: '#/components/parameters/staff-apiPage'
      - $ref: '#/components/parameters/staff-apiSize'
      - $ref: '#/components/parameters/staff-apiSortByStaffGroup'
      - name: name
        description: Filter on group name.
        in: query
        schema:
          type: string
      - name: roles
        description: Filter on group roles.
        in: query
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: POS User Groups List
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/staff-apiResponseSchema'
                - type: object
                  properties:
                    data:
                      type: object
                      properties:
                        staffGroupList:
                          type: array
                          items:
                            $ref: '#/components/schemas/staff-apiStaffGroup'
              examples:
                Staff-apiGetPosUserGroups200Example:
                  summary: Default staff-apiGetPosUserGroups 200 response
                  x-microcks-default: true
                  value:
                    data:
                      staffGroupList:
                      - id: 1234
                        name: Bar Staff
                        roles: []
                        reportAccess: {}
                    links:
                      first:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      self:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      next:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
                      last:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
                    page:
                      page: 1
                      size: 10
                      totalElements: 100
                      totalPages: 10
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/groups/{groupId}:
    get:
      tags:
      - Staff
      summary: Lightspeed Get Single User Group
      operationId: staff-apiGetPosUserGroupById
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessLocationId'
      - name: groupId
        in: path
        description: The unique identifier for the user group.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: POS User Group
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/staff-apiResponseSchema'
                - type: object
                  properties:
                    data:
                      type: object
                      properties:
                        staffGroup:
                          $ref: '#/components/schemas/staff-apiStaffGroup'
              examples:
                Staff-apiGetPosUserGroupById200Example:
                  summary: Default staff-apiGetPosUserGroupById 200 response
                  x-microcks-default: true
                  value:
                    data:
                      staffGroup:
                        id: 1234
                        name: Bar Staff
                        roles:
                        - {}
                        reportAccess: STAFF_REPORT_OWN_ACCESS
                    links:
                      first:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      self:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=1&size=1&sort=userId,desc
                      next:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=2&size=1&sort=userId,desc
                      last:
                        href: https://api-trial.ikentoo.com/staff/v1/businessLocations/40570261078018/userTypes/POS?page=5&size=1&sort=userId,desc
                    page:
                      page: 1
                      size: 10
                      totalElements: 100
                      totalPages: 10
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/business/{businessId}/assignStaff/{staffId}:
    post:
      tags:
      - Staff
      summary: Lightspeed Add Business Location Access
      operationId: staff-apiAddStaffBusinessLocationAccess
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessId'
      - name: staffId
        in: path
        description: The unique identifier for the user.
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/staff-apiBusinessLocationIds'
            examples:
              Staff-apiAddStaffBusinessLocationAccessRequestExample:
                summary: Default staff-apiAddStaffBusinessLocationAccess request
                x-microcks-default: true
                value:
                  businessLocationIds: &id001
                  - 123456789
                  - 987654321
      responses:
        '200':
          description: User business location access added successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/staff-apiBusinessLocationIds'
              examples:
                Staff-apiAddStaffBusinessLocationAccess200Example:
                  summary: Default staff-apiAddStaffBusinessLocationAccess 200 response
                  x-microcks-default: true
                  value:
                    businessLocationIds: *id001
        '400':
          description: Bad request. Invalid input parameters.
        '401':
          description: Authentication failed.
        '403':
          description: Access Denied.
        '500':
          description: Internal Server Error.
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/unAssignStaff/{staffId}:
    delete:
      tags:
      - Staff
      summary: Lightspeed Remove Business Location Access
      operationId: staff-apiDeleteStaffBusinessLocationAccess
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessLocationId'
      - name: staffId
        in: path
        description: The unique identifier for the user.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: User business location access removed successfully.
        '400':
          description: Bad request. Invalid input parameters.
        '401':
          description: Authentication failed.
        '403':
          description: Access Denied.
        '500':
          description: Internal Server Error.
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/webhooks:
    post:
      tags:
      - Staff
      summary: Lightspeed Create Webhook
      operationId: staff-apiCreateWebhook
      parameters:
      - name: businessLocationId
        in: path
        description: The unique identifier for the business location.
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/staff-apiCreateWebhookRequest'
            examples:
              Staff-apiCreateWebhookRequestExample:
                summary: Default staff-apiCreateWebhook request
                x-microcks-default: true
                value:
                  notificationType: shift.updated
                  url: example
                  webhookName: Sample webhookName
      responses:
        '200':
          description: Webhook Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/staff-apiWebhookDto'
              examples:
                Staff-apiCreateWebhook200Example:
                  summary: Default staff-apiCreateWebhook 200 response
                  x-microcks-default: true
                  value:
                    uuid: e95c2cc5-4489-4025-a7e2-a34faeaa5f9d
                    notificationType: shift.updated
                    url: example
                    webhookName: My Awesome Webhook
                    businessLocationId: 1234567890
                    createdAt: '2026-03-15T14:30:00Z'
                    updatedAt: '2026-03-15T14:30:00Z'
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    get:
      tags:
      - Staff
      summary: Lightspeed Get Webhooks
      operationId: staff-apiGetWebhooks
      parameters:
      - name: businessLocationId
        in: path
        description: The unique identifier for the business location.
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Webhooks Returned
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/staff-apiWebhookDto'
              examples:
                Staff-apiGetWebhooks200Example:
                  summary: Default staff-apiGetWebhooks 200 response
                  x-microcks-default: true
                  value:
                  - uuid: e95c2cc5-4489-4025-a7e2-a34faeaa5f9d
                    notificationType: shift.deleted
                    url: example
                    webhookName: My Awesome Webhook
                    businessLocationId: 1234567890
                    createdAt: '2026-03-15T14:30:00Z'
                    updatedAt: '2026-03-15T14:30:00Z'
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/webhooks/{webhookId}:
    patch:
      tags:
      - Staff
      summary: Lightspeed Update Existing Webhook
      description: Updates the details of an existing webhook.
      operationId: staff-apiUpdateWebhook
      parameters:
      - $ref: '#/components/parameters/staff-apiBusinessLocationId'
      - name: webhookId
        in: path
        required: true
        description: The unique identifier for the webhook.
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/staff-apiCreateWebhookRequest'
            examples:
              Staff-apiUpdateWebhookRequestExample:
                summary: Default staff-apiUpdateWebhook request
                x-microcks-default: true
                value:
                  notificationType: shift.updated
                  url: example
                  webhookName: Sample webhookName
      responses:
        '200':
          description: Webhook updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/staff-apiWebhookDto'
              examples:
                Staff-apiUpdateWebhook200Example:
                  summary: Default staff-apiUpdateWebhook 200 response
                  x-microcks-default: true
                  value:
                    uuid: e95c2cc5-4489-4025-a7e2-a34faeaa5f9d
                    notificationType: shift.updated
                    url: example
                    webhookName: My Awesome Webhook
                    businessLocationId: 1234567890
                    createdAt: '2026-03-15T14:30:00Z'
                    updatedAt: '2026-03-15T14:30:00Z'
        '400':
          description: Bad request. Invalid input parameters.
        '404':
          description: Not found. The specified webhook ID does not exist.
        '409':
          description: Conflict. A webhook with the specified details already exists.
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      tags:
      - Staff
      summary: Lightspeed Delete Webhook
      operationId: staff-apiDeleteWebhook
      parameters:
      - name: businessLocationId
        in: path
        description: The unique identifier for the business location.
        required: true
        schema:
          type: integer
          format: int64
      - name: webhookId
        in: path
        description: The unique identifier for the webhook.
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Webhook successfully deleted
      security:
      - OAuth2:
        - staff-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /staff/v1/businessLocations/{businessLocationId}/userTypes/POS/reportAccess:
    get:
      tags:
      - Staff
      summary: Lightspeed Get Report Access Levels
      operationId: staff-apiGetReportAccessLevels
      parameters:
      - name: businessLocationId
        in: path
        descript

# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lightspeed-pos/refs/heads/main/openapi/lightspeed-pos-staff-api-openapi.yml