Lightspeed PMS Integration API
The PMS Integration API from Lightspeed — 0 operation(s) for pms integration.
The PMS Integration API from Lightspeed — 0 operation(s) for pms integration.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/lightspeed-pos-pms-integration-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
version: 1.0.0
title: Lightspeed Restaurant K Series PMS Integration 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: PMS Integration
paths: {}
webhooks:
pms-integration{subscriber-host}/charge:
post:
summary: Transaction Details
operationId: transactionDetails
description: "What subscriber endpoint implementation will receive when a transaction is made.\nSubscriber path need to end with `/charge`.\nSubscriber implementation should follow the payload backward compatibility rules below:\n - What considered as backward **compatible**:\n - Addition of new fields, enums, headers, or parameters.\n - Transition from optional to required fields. Which means Lightspeed will consistently send the parameter/field from now on.\n - What considered as backward **incompatible**:\n - Alteration of schema structure, such as switching from a map to an array.\n - Removal of field/enum/header\n - Changes in data types, such as converting from string to integer.\n - Changes of property name\n"
parameters:
- in: header
name: Accept
required: true
schema:
type: string
example: application/json
description: 'The expected response content type from subscriber.
Only application/json is supported.
'
- in: header
name: X-Lightspeed-Idempotency-Key
required: true
schema:
type: string
example: LS1_123e4567-e89b-12d3-a456-426614174000
description: 'Subscribers should utilize the Idempotency Key to ensure duplicates are handled appropriately on their end.
'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/pms-integrationSalesWebhookDto'
responses:
'200':
description: 'Subscriber should return this code if it successfully processed the charge request at PMS.
Following that, Lightspeed will mark the PMS charge transaction as SUCCESS as well.
'
5XX:
description: 'If any server error occurs subscriber can pass their own custom message to the POS.
The response body content need to follow the schema, else only `5XX {Error Type}` will be sent.
'
content:
application/json:
schema:
$ref: '#/components/schemas/pms-integrationErrorWebhookDto'
4XX:
description: 'If any client error occurs subscriber can pass their own custom message to the POS.
The response body content need to follow the schema, else only `4XX {Error Type}` will be sent.
'
content:
application/json:
schema:
$ref: '#/components/schemas/pms-integrationErrorWebhookDto'
tags:
- PMS Integration
components:
schemas:
pms-integrationErrorWebhookDto:
type: object
description: 'The error response body content should follow this schema.
If the response body content does not follow this schema, only the status code will be sent.
All other property beside customerErrorMessage will be ignored.
'
properties:
customerErrorMessage:
type: string
maxLength: 50
example: Network failure
description: 'The error message that will be sent and printed at the POS.
Length should not exceed 50 characters to avoid truncation.
'
pms-integrationSalesWebhookDto:
type: object
properties:
name:
type: string
description: Name of the transaction
openDate:
type: string
format: date-time
description: The date and time when the transaction was opened in UTC
example: '2021-01-01T00:00:00Z'
closeDate:
type: string
format: date-time
description: The date and time when the transaction was closed in UTC
example: '2021-01-01T00:00:00Z'
covers:
type: number
description: The number of covers (guests) in this transaction.
example: 2
ownerId:
type: integer
format: int64
description: The ID of the POS user (staff) who owns this transaction
example: 12345
ownerName:
type: string
description: The name of the POS user (staff) who owns this transaction
example: John Doe
deviceId:
type: integer
format: int64
description: The ID of the device on which the transaction was started
example: 12345
businessExternalReference:
type: string
description: Client name
example: quickbooks-123
apiKey:
type: string
description: API Key.
example: quickbooks-key-345
receiptId:
type: string
description: Receipt ID
example: R51.3
fiscId:
type: string
description: 'Unique identifier for the transaction, can be used this for any identification purposes.
'
example: A1234.5
uuid:
type: string
description: 'A b64 encoded uuid which also act as unique identifier for the transaction,
also can be used for any identification purposes.
'
example: xfe9ldKWSfW8VrAYUcnvGA==
initialAccountId:
type: string
description: 'Initial Account ID, if any.
This is used to correlate the transaction with the initial account, such on REFUND or VOID.
'
example: A1234.1
identifier:
deprecated: true
type: string
description: Refer to the non null value of either the fiscId or uuid as fallback.
example: A1234.5
revenueCenterId:
type: integer
format: int64
description: Revenue Center (POS Configuration) ID
example: 94489280528
revenueCenterName:
type: string
description: Revenue Center (POS Configuration) Name
example: Fixed POS
transactions:
type: array
items:
$ref: '#/components/schemas/pms-integrationPmsTransactionWebhookDto'
payments:
type: array
items:
$ref: '#/components/schemas/pms-integrationPmsPaymentWebhookDto'
serviceCharge:
$ref: '#/components/schemas/pms-integrationPmsServiceChargeWebhookDto'
pms-integrationPmsTransactionWebhookDto:
type: object
properties:
unitAmount:
type: number
description: The price of single item.
example: 10.0
quantity:
type: number
description: 'The quantity of the items. Negative quantity indicates a refund/cancellation/void.
'
example: 2.0
amount:
type: number
description: The total pre-tax amount of this transaction sale line.
example: 20.0
description:
type: string
description: The item name
example: French Fries
staffId:
type: integer
format: int64
description: The ID of the POS user (staff) who processed this transaction line
example: 6
staffName:
type: string
description: The name of the POS user (staff) who processed this transaction line
example: John Doe
groupId:
type: integer
format: int64
description: Lightspeed accounting group id which the item belongs to.
example: 25769803810
groupName:
type: string
description: Lightspeed accounting group name which the item belongs to.
example: Food
taxId:
deprecated: true
type: integer
format: int64
description: Deprecated, refer to taxLines.
example: 12345
taxName:
deprecated: true
type: string
description: Deprecated, refer to taxLines.
example: VAT 10%
taxRate:
deprecated: true
type: number
description: The tax rate of the items.
example: 1.1
taxIncluded:
deprecated: true
type: boolean
description: Deprecated, refer to taxLines.
example: true
sku:
type: string
description: The SKU of the items.
example: F07
type:
type: string
enum:
- Sale
- LineDiscount
- AccountDiscount
- PercentItem
description: The type of the transaction line.
serviceChargeContribution:
type: number
description: The amount of the service charge contribution.
example: 4.5
taxLines:
type: array
items:
$ref: '#/components/schemas/pms-integrationPmsTaxLineWebhookDto'
pms-integrationPmsPaymentWebhookDto:
type: object
properties:
paymentDate:
type: string
format: date-time
description: The date and time when the payment was made in UTC
example: '2021-01-01T00:00:00Z'
staffId:
type: integer
format: int64
description: The ID of the POS user (staff) who processed this payment
example: 6
staffName:
type: string
description: The name of the POS user (staff) who processed this payment
example: John Doe
gratuity:
type: number
description: The amount of the gratuity (tips).
example: 1.0
amount:
type: number
description: The total amount of the received payment.
example: 66.0
methodName:
type: string
description: The name of the payment method.
example: MEWS
methodCode:
type: string
description: The code of the payment method.
example: IKPMS
reservationId:
type: string
description: The reservation ID of the payment.
example: '001'
pms-integrationPmsServiceChargeWebhookDto:
type: object
properties:
amount:
type: number
description: The amount of the service charge.
example: 1.0
type:
type: string
enum:
- UNTAXED
- APPORTIONED
description: The type of the service charge.
example: UNTAXED
pms-integrationPmsTaxLineWebhookDto:
type: object
properties:
taxId:
type: string
description: The tax identifier.
example: '12345'
taxName:
type: string
description: The name of the tax.
example: VAT 10%
taxAmount:
type: number
description: The amount of the tax.
example: 1.0
taxRate:
type: number
description: The rate of the tax.
example: 1.1
taxIncluded:
type: boolean
description: Whether the tax is included in the price (VAT).
example: true
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-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'