Lightspeed Commerce Order and Pay: Webhook API

The Order and Pay: Webhook API from Lightspeed Commerce — 4 operation(s) for order and pay: webhook.

Business capability
Webhook & Event Subscription Management BC-4270.80

Operations 7

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

PUT /o/wh/1/webhook Create an order status webhook · Create a Webhook #
Ask an LLM
“How do I set up a webhook to get order status updates?”
“Can a new webhook use basic auth on my endpoint?”
Tell an agent
Create a webhook for endpoint {endpointId} that posts to {url}.
Configure a new webhook {endpointId} at {url} subscribed to {subscribeTo}.
POST /o/wh/1/webhook Update an existing webhook · Update a webhook #
Ask an LLM
“How do I change the URL of a webhook I already configured?”
“Which webhook settings reset to defaults if I leave them out of an update?”
Tell an agent
Update existing webhook {endpointId} to post to {url}.
Change webhook {endpointId} at {url} to expand payments: {expandPayments}.
GET /o/wh/1/webhook/{endpointId} Retrieve a webhook · Retrieve a Webhook #
Ask an LLM
“How do I see how a webhook endpoint is configured?”
“What URL and subscriptions does my webhook currently have?”
Tell an agent
Get the webhook with endpoint ID {endpointId}.
Show the configuration of webhook {endpointId}.
DELETE /o/wh/1/webhook/{endpointId} Delete a webhook · Delete a Webhook #
Ask an LLM
“How do I stop receiving order webhooks entirely?”
“Can I delete a webhook endpoint I no longer use?”
Tell an agent destructive · confirm first
Delete webhook {endpointId}.
Remove the webhook endpoint {endpointId} completely.
GET /o/wh/1/webhook/{endpointId}/business-locations List locations enabled on a webhook · Get webhook business locations #
Ask an LLM
“Which business locations are attached to my webhook?”
“How do I check which sites will send item availability webhooks?”
Tell an agent
List the business locations added to webhook {endpointId}.
Show which locations are enabled on webhook {endpointId}.
PUT /o/wh/1/webhook/{endpointId}/business-locations/{businessLocationId} Enable a webhook for a business location · Add a Business Location to a Webhook #
Ask an LLM
“How do I get item availability notifications for a location?”
“Do order and payment webhooks need a business location added?”
Tell an agent
Add business location {businessLocationId} to webhook {endpointId}.
Enable webhook {endpointId} for item notifications at location {businessLocationId}.
DELETE /o/wh/1/webhook/{endpointId}/business-locations/{businessLocationId} Remove a business location from a webhook · Remove Business Location from a Webhook #
Ask an LLM
“How do I stop one location from sending events to my webhook?”
“Can I detach a single site from a webhook without deleting it?”
Tell an agent destructive · confirm first
Remove business location {businessLocationId} from webhook {endpointId}.
Detach location {businessLocationId} from webhook endpoint {endpointId} but keep the webhook.

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:lightspeed-order-and-pay-webhook-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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-order-and-pay-webhook-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 'Lightspeed Order and Pay: Webhook API'
  version: 1.0.0
  x-logo:
    altText: Lightspeed Commerce
    url: static/lightspeed@2x.png
  description: 'Operations tagged Order and Pay: Webhook across 2 of this provider''s published API definitions: lightspeed-k-series-openapi.json, lightspeed-k-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
tags:
- name: 'Order and Pay: Webhook'
paths:
  /o/wh/1/webhook:
    put:
      summary: Create a Webhook
      operationId: apeCreateWebhookOo
      description: Configures a new webhook to be used for order status updates.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apeWebhookEndpoint'
        required: true
      tags:
      - 'Order and Pay: Webhook'
      responses:
        '200':
          description: Webhook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apeWebhookEndpoint'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                description: Response object for error code 400.
                properties:
                  timestamp:
                    type: string
                    format: date-time
                    description: The date and time at which the error occurred.
                    examples:
                    - 2023-11-07T19:15:05.043+0000
                  status:
                    type: integer
                    description: The HTTP status code of the error response.
                    examples:
                    - 400
                  error:
                    type: string
                    description: A brief title of the error status.
                    examples:
                    - Bad Request
                  message:
                    type: string
                    description: A message describing the nature of the error in detail.
                    examples:
                    - 'Validation failed for object=''webhookEndpointDto''. Error count: 1'
                  errors:
                    type: array
                    description: An array of error details, outlining specific issues with the request.
                    items:
                      type: object
                      properties:
                        codes:
                          type: array
                          items:
                            type: string
                          description: A set of code strings that correspond to the validation error.
                          example:
                          - NotNull.webhookEndpointDto.endpointId
                          - NotNull.endpointId
                          - NotNull.java.lang.String
                          - NotNull
                        arguments:
                          type: array
                          items:
                            type: object
                            properties:
                              codes:
                                type: array
                                items:
                                  type: string
                                description: Argument codes that are related to the field in validation.
                                example:
                                - webhookEndpointDto.endpointId
                                - endpointId
                              defaultMessage:
                                type: string
                                description: The default message associated with the failed validation.
                                example: endpointId
                              code:
                                type: string
                                description: A single code that represents the specific validation rule that was not satisfied.
                                example: endpointId
                        defaultMessage:
                          type: string
                          description: The default error message provided when the associated field fails validation.
                          example: must not be null
                        objectName:
                          type: string
                          description: The name of the object that failed validation.
                          example: webhookEndpointDto
                        field:
                          type: string
                          description: The name of the field that failed validation.
                          example: endpointId
                        bindingFailure:
                          type: boolean
                          description: Indicates whether the error was a result of a binding failure.
                          example: false
                        code:
                          type: string
                          description: A code representing the specific type of validation error.
                          example: NotNull
                  path:
                    type: string
                    description: The path of the failed request.
                    examples:
                    - /o/wh/1/webhook
      security:
      - OAuth2:
        - orders-api
    post:
      summary: Update a webhook
      operationId: apeUpdateWebhookOo
      description: 'Updates an existing webhook entry.


        Important Note: if `provideAccount`, `expandTransactions`, or `expandPayments` are excluded from the update request, they will be reset to their default values.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/apeWebhookEndpoint'
        required: true
      tags:
      - 'Order and Pay: Webhook'
      responses:
        '200':
          description: Webhook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apeWebhookEndpoint'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                description: Response object for error code 400.
                properties:
                  timestamp:
                    type: string
                    format: date-time
                    description: The date and time at which the error occurred.
                    examples:
                    - 2023-11-07T19:15:05.043+0000
                  status:
                    type: integer
                    description: The HTTP status code of the error response.
                    examples:
                    - 400
                  error:
                    type: string
                    description: A brief title of the error status.
                    examples:
                    - Bad Request
                  message:
                    type: string
                    description: A message describing the nature of the error in detail.
                    examples:
                    - 'Validation failed for object=''webhookEndpointDto''. Error count: 1'
                  errors:
                    type: array
                    description: An array of error details, outlining specific issues with the request.
                    items:
                      type: object
                      properties:
                        codes:
                          type: array
                          items:
                            type: string
                          description: A set of code strings that correspond to the validation error.
                          example:
                          - NotNull.webhookEndpointDto.endpointId
                          - NotNull.endpointId
                          - NotNull.java.lang.String
                          - NotNull
                        arguments:
                          type: array
                          items:
                            type: object
                            properties:
                              codes:
                                type: array
                                items:
                                  type: string
                                description: Argument codes that are related to the field in validation.
                                example:
                                - webhookEndpointDto.endpointId
                                - endpointId
                              defaultMessage:
                                type: string
                                description: The default message associated with the failed validation.
                                example: endpointId
                              code:
                                type: string
                                description: A single code that represents the specific validation rule that was not satisfied.
                                example: endpointId
                        defaultMessage:
                          type: string
                          description: The default error message provided when the associated field fails validation.
                          example: must not be null
                        objectName:
                          type: string
                          description: The name of the object that failed validation.
                          example: webhookEndpointDto
                        field:
                          type: string
                          description: The name of the field that failed validation.
                          example: endpointId
                        bindingFailure:
                          type: boolean
                          description: Indicates whether the error was a result of a binding failure.
                          example: false
                        code:
                          type: string
                          description: A code representing the specific type of validation error.
                          example: NotNull
                  path:
                    type: string
                    description: The path of the failed request.
                    examples:
                    - /o/wh/1/webhook
      security:
      - OAuth2:
        - orders-api
    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
  /o/wh/1/webhook/{endpointId}:
    get:
      summary: Retrieve a Webhook
      operationId: apeGetWebhookOo
      description: Retrieve an existing webhook.
      parameters:
      - schema:
          example: endpoint
          type: string
        name: endpointId
        in: path
        required: true
      tags:
      - 'Order and Pay: Webhook'
      responses:
        '200':
          description: Webhook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apeWebhookEndpoint'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  timestamp:
                    type: string
                    format: date-time
                    description: The date and time at which the error occurred.
                    examples:
                    - 2023-11-07T22:18:49.101+0000
                  status:
                    type: integer
                    description: The HTTP status code associated with the error.
                    examples:
                    - 404
                  error:
                    type: string
                    description: A short description of the HTTP status code meaning.
                    examples:
                    - Not Found
                  message:
                    type: string
                    description: A human-readable message providing more details about the error.
                    examples:
                    - endpoint ID not found for MISSING-ENDPOINT
                  path:
                    type: string
                    description: The request path where the error occurred.
                    examples:
                    - /o/wh/1/webhook/MISSING-ENDPOINT
      security:
      - OAuth2:
        - orders-api
    delete:
      summary: Delete a Webhook
      operationId: apeDeleteWebhookEndpoint
      description: Delete an existing webhook.
      parameters:
      - schema:
          example: endpoint
          type: string
        name: endpointId
        in: path
        required: true
      tags:
      - 'Order and Pay: Webhook'
      responses:
        '200':
          description: Webhook deleted
      security:
      - OAuth2:
        - orders-api
    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
  /o/wh/1/webhook/{endpointId}/business-locations:
    get:
      summary: Get webhook business locations
      operationId: apeGetWebhookBusinessLocations
      description: Get all business locations added to a webhook endpoint via the API.
      parameters:
      - schema:
          type: string
          example: endpoint
        name: endpointId
        in: path
        required: true
      tags:
      - 'Order and Pay: Webhook'
      responses:
        '200':
          description: Business location IDs
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/apeWebhookEndpointBusinessLocationDto'
        '404':
          description: Not Found
      security:
      - OAuth2:
        - orders-api
    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
  /o/wh/1/webhook/{endpointId}/business-locations/{businessLocationId}:
    parameters:
    - in: path
      name: businessLocationId
      required: true
      schema:
        $ref: '#/components/schemas/apeBusinessLocationId'
    put:
      summary: Add a Business Location to a Webhook
      operationId: apeAddWebhookBusinessLocation
      description: 'Enables a webhook for the specified business location.

        Required to receive item availability notifications (type ''item'').

        Not required for ''order'' and ''payment'' webhooks.'
      parameters:
      - schema:
          type: string
          example: endpoint
        name: endpointId
        in: path
        required: true
      - schema:
          $ref: '#/components/schemas/apeBusinessLocationId'
        name: businessLocationId
        in: path
        required: true
      tags:
      - 'Order and Pay: Webhook'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apeWebhookEndpointBusinessLocationDto'
        '404':
          description: Not Found
      security:
      - OAuth2:
        - orders-api
    delete:
      summary: Remove Business Location from a Webhook
      operationId: apeRemoveWebhookBusinessLocation
      description: Remove a business location ID from a webhook endpoint.
      parameters:
      - schema:
          type: string
          example: endpoint
        name: endpointId
        in: path
        required: true
      - schema:
          $ref: '#/components/schemas/apeBusinessLocationId'
        name: businessLocationId
        in: path
        required: true
      tags:
      - 'Order and Pay: Webhook'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apeWebhookEndpointBusinessLocationDto'
        '404':
          description: Not Found
      security:
      - OAuth2:
        - orders-api
    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
components:
  schemas:
    apeWebhookEndpoint:
      required:
      - endpointId
      - url
      properties:
        endpointId:
          example: MY-AWESOME-ENDPOINT-ID
          description: The unique endpoint ID, for example the integration name. Case sensitive.
          type: string
        url:
          example: https://webhook.site/1dc40b86-3d0d
          description: The URL which this endpoint points to.
          type: string
        withBasicAuth:
          default: false
          description: If basic auth should be used, defaults to false.
          type: boolean
          example: true
        username:
          example: username
          description: The username for basic auth.
          type: string
        password:
          example: password
          description: The password for basic auth.
          type: string
        provideAccount:
          description: Whether or not to include account info in the notification.
          example: true
          default: false
          type: boolean
        expandTransactions:
          example: true
          description: Whether or not to include transaction lines in the notification.
          default: false
          type: boolean
        expandPayments:
          example: true
          description: Whether or not to include payment lines in the notification.
          default: false
          type: boolean
        subscribeTo:
          items:
            $ref: '#/components/schemas/apeEventResource'
          type: array
      type: object
    apeBusinessLocationId:
      description: The unique identifier for the business location.
      type: integer
      format: int64
      example: 45454565682155
    apeWebhookEndpointBusinessLocationDto:
      type: object
      properties:
        businessLocationId:
          type: integer
          format: int64
          description: The unique identifier for the business location.
          example: 45454565682155
        createdAt:
          type: string
          format: date-time
          description: Timestamp when this association was created.
          example: 2023-11-07T19:15:05.043+0000
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when this association was last updated.
          example: 2023-11-07T19:15:05.043+0000
        warnings:
          description: A list of warnings that occurred during the request, but which did not prevent a successful response.  For instance, if the Business Location does not have the required POS app version to support item availability.
          type: array
          items:
            $ref: '#/components/schemas/apeCurrentWarning'
      required:
      - businessLocationId
    apeCurrentWarning:
      type: object
      properties:
        information:
          type: string
        type:
          type: string
    apeEventResource:
      description: Event to listen to by resource
      example:
        name: DELIVERED
        resource: order
      properties:
        name:
          type: string
          description: 'Events to subscribe to.

            * order: `DELIVERED`

            * item: `SALES_RESTRICTION_UPDATED` - Business locations for this webhook must be specified [here](https://api-docs.lsk.lightspeed.app/operation/operation-apegetwebhookbusinesslocations).

            * order_api: `ONLINE_ORDER_READINESS` - Business locations for this webhook must be specified [here](https://api-docs.lsk.lightspeed.app/operation/operation-apegetwebhookbusinesslocations).


            The following are always sent:

            * Account: `CLOSED` and `CHECK_WAS_UPDATED`.

            * Order: `FAILURE`, `READY_FOR_PICKUP` and `CANCELLED`.

            * Payment: `SUCCESS` and `FAILURE`.

            * Order API: `READY` and `NOT_READY`.'
        resource:
          enum:
          - order
          - payment
          - item
          - order_api
          type: string
      type: object
  securitySchemes:
    OAuth2:
      description: 'The Lightspeed Restaurant K-Series APIs support OAuth2 authentication using the [authorization code grant flow](https://www.oauth.com/oauth2-servers/server-side-apps/authorization-code/).

        See our [Authorization Quick Start Guide](https://api-portal.lsk.lightspeed.app/quick-start/authentication/authorization-overview) for more details on how to authenticate.

        '
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /oauth/authorize
          tokenUrl: /oauth/token
          scopes:
            orders-api: 'Read business information, floors, menus, discounts, and production instructions.

              Read and write orders and payments. Read [Rich Item](https://api-docs.lsk.lightspeed.app/prod/group/endpoint-rich-item) data.'
            financial-api: Read financial data
            reservation-***: Platform reservations scope. The `***` will be replaced by the [platform-code](https://api-docs.lsk.lightspeed.app/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-platform-code) of the reservation platform.
            items: Read and write items
            propertymanagement: Read and write Property Management System configurations.
            id-cards: Create and manage ID card batches and cards.
            staff-api: Read shift information, read and write user information.
            reservations-api: 'Configure *legacy* reservation integrations.

              **Note:** This API will eventually be deprecated in favour of the new [Reservations for Platforms](https://api-docs.lsk.lightspeed.app/group/endpoint-reservations-for-platforms) API.

              More information on the new reservations workflows can be found in the [Integration Guide](https://api-portal.lsk.lightspeed.app/category/reservations).'
x-refined-from:
- lightspeed-k-series-openapi.json
- lightspeed-k-series-openapi.yml
x-tagGroups:
- name: Rich Item API
  tags:
  - Rich Item
  - Migration
- name: Tax Preview API
  tags:
  - Tax Breakdown
- name: Staff Api
  tags:
  - Staff
  - Internal Staff
- name: Reservation API
  tags:
  - Reservations for Platforms
- name: PMS API
  tags:
  - PMS
- name: Items API
  tags:
  - Items
  - ItemsV2
  - Menus
  - Buttons
  - Production Instructions
  - Inventory
  - Combos
  - Groups
  - MenusV2
  - Accounting Group
  - IntegrationMenu
  - Price Lists
  - Products
  - ItemAppearance
  - Modifiers
  - ModifierGroups
  - Allergens
  - Locales
  - RichItem
- name: id-cards-api API
  tags:
  - ID Cards
- name: Financial API
  tags:
  - Financial
  - FinancialV2
- name: Online Ordering API
  tags:
  - Order and Pay
  - 'Order and Pay: Webhook'