Lightspeed Staff API

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

Operations 19

GET /staff/v1/businessLocations/{businessLocationId}/shift Lightspeed Get Shifts #
GET /staff/v1/businessLocations/{businessLocationId}/userTypes/POS Lightspeed Get All POS Users #
POST /staff/v1/businessLocations/{businessLocationId}/userTypes/POS Lightspeed Create POS User #
PUT /staff/v1/businessLocations/{businessLocationId}/userTypes/POS/{staffId} Lightspeed Update POS User #
GET /staff/v1/businessLocations/{businessLocationId}/userTypes/BACK_OFFICE Lightspeed Get All Back Office Users #
GET /staff/v1/businessLocations/{businessLocationId}/staff/{staffId} Lightspeed Get Single User #
GET /staff/v1/businessLocations/{businessLocationId}/groups Lightspeed Get All User Groups #
GET /staff/v1/businessLocations/{businessLocationId}/groups/{groupId} Lightspeed Get Single User Group #
POST /staff/v1/business/{businessId}/assignStaff/{staffId} Lightspeed Add Business Location Access #
DELETE /staff/v1/businessLocations/{businessLocationId}/unAssignStaff/{staffId} Lightspeed Remove Business Location Access #
POST /staff/v1/businessLocations/{businessLocationId}/webhooks Lightspeed Create Webhook #
GET /staff/v1/businessLocations/{businessLocationId}/webhooks Lightspeed Get Webhooks #
PATCH /staff/v1/businessLocations/{businessLocationId}/webhooks/{webhookId} Lightspeed Update Existing Webhook #
DELETE /staff/v1/businessLocations/{businessLocationId}/webhooks/{webhookId} Lightspeed Delete Webhook #
GET /staff/v1/businessLocations/{businessLocationId}/userTypes/POS/reportAccess Lightspeed Get Report Access Levels #
GET /staff/v1/businessLocations/{businessLocationId}/userTypes/BACK_OFFICE/roles Lightspeed Get All Back Office User Permissions #
GET /staff/v1/businessLocations/{businessLocationId}/userTypes/POS/roles Lightspeed Get All POS User Permissions #
GET /Account/{accountID}/Employee.json Lightspeed List Employees #
GET /Account/{accountID}/Shop.json Lightspeed List Shops #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lightspeed-pos-staff-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lightspeed-pos-staff-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lightspeed Pos Staff API
  x-generated-from: documentation
  x-last-validated: '2026-06-02'
  x-refined-note:
  - x-logo differs across the merged source definitions and was not carried
  - x-source-url differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Staff across 2 of this provider''s published API definitions: lightspeed-pos-restaurant-k-series-openapi.yml, lightspeed-pos-retail-r-series-openapi.yml. Each path carries the servers of the definition it was published in.'
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
- url: https://api.lightspeedapp.com/API/V3
  description: Lightspeed Retail R-Series API host.
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
    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
  /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
    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
  /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
    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
  /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
    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
  /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
    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
  /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
    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
  /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
    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
  /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:
                  - 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:
                    - 123456789
                    - 987654321
        '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
    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
  /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
    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
  /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
    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
  /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: '#/com

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