Lightspeed Sale API
Point-of-sale transactions and their line items.
Point-of-sale transactions and their line items.
openapi: 3.1.0
info:
version: 1.0.0
title: Lightspeed Restaurant K Series Account Sale 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: Sale
description: Point-of-sale transactions and their line items.
paths:
/Account/{accountID}/Sale.json:
get:
summary: Lightspeed List Sales
operationId: getSales
description: Returns point-of-sale transactions for the account.
tags:
- Sale
security:
- OAuth2:
- employee:reports
parameters:
- $ref: '#/components/parameters/accountID'
- name: completed
in: query
description: Filter by completion status.
schema:
type: boolean
- name: limit
in: query
schema:
type: integer
default: 100
responses:
'200':
description: A page of sales.
content:
application/json:
schema:
type: object
properties:
'@attributes':
$ref: '#/components/schemas/Attributes'
Sale:
type: array
items:
$ref: '#/components/schemas/Sale'
examples:
GetSales200Example:
summary: Default getSales 200 response
x-microcks-default: true
value:
'@attributes':
count: 902
offset: 1000
limit: 426
Sale:
- saleID: '500123'
timeStamp: '2026-03-15T14:30:00Z'
completed: true
total: '12.50'
totalDue: '12.50'
displayableTotal: '12.50'
discountPercent: example
customerID: '500123'
employeeID: '500123'
shopID: '500123'
registerID: '500123'
SaleLines:
SaleLine: []
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: Lightspeed Create Sale
operationId: createSale
description: Creates a new sale transaction.
tags:
- Sale
security:
- OAuth2:
- employee:register
parameters:
- $ref: '#/components/parameters/accountID'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Sale'
examples:
CreateSaleRequestExample:
summary: Default createSale request
x-microcks-default: true
value:
saleID: '500123'
timeStamp: '2026-03-15T14:30:00Z'
completed: false
total: '12.50'
totalDue: '12.50'
displayableTotal: '12.50'
discountPercent: example
customerID: '500123'
employeeID: '500123'
shopID: '500123'
registerID: '500123'
SaleLines:
SaleLine:
- {}
responses:
'200':
description: Sale created.
content:
application/json:
schema:
type: object
properties:
Sale:
$ref: '#/components/schemas/Sale'
examples:
CreateSale200Example:
summary: Default createSale 200 response
x-microcks-default: true
value:
Sale:
saleID: '500123'
timeStamp: '2026-03-15T14:30:00Z'
completed: false
total: '12.50'
totalDue: '12.50'
displayableTotal: '12.50'
discountPercent: example
customerID: '500123'
employeeID: '500123'
shopID: '500123'
registerID: '500123'
SaleLines:
SaleLine:
- {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/Account/{accountID}/Sale/{saleID}.json:
get:
summary: Lightspeed Get Sale by ID
operationId: getSaleById
description: Returns a single sale by its saleID, including its sale lines.
tags:
- Sale
security:
- OAuth2:
- employee:reports
parameters:
- $ref: '#/components/parameters/accountID'
- $ref: '#/components/parameters/saleID'
responses:
'200':
description: The sale.
content:
application/json:
schema:
type: object
properties:
Sale:
$ref: '#/components/schemas/Sale'
examples:
GetSaleById200Example:
summary: Default getSaleById 200 response
x-microcks-default: true
value:
Sale:
saleID: '500123'
timeStamp: '2026-03-15T14:30:00Z'
completed: true
total: '12.50'
totalDue: '12.50'
displayableTotal: '12.50'
discountPercent: example
customerID: '500123'
employeeID: '500123'
shopID: '500123'
registerID: '500123'
SaleLines:
SaleLine:
- {}
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
Sale:
type: object
description: A point-of-sale transaction.
properties:
saleID:
type: string
description: Unique sale identifier.
timeStamp:
type: string
format: date-time
description: When the sale occurred.
completed:
type: boolean
description: Whether the sale has been completed.
total:
type: string
description: Sale total including tax.
totalDue:
type: string
description: Amount still owed on the sale.
displayableTotal:
type: string
description: Human-readable total.
discountPercent:
type: string
description: Sale-level discount percentage.
customerID:
type: string
description: Identifier of the customer on the sale.
employeeID:
type: string
description: Identifier of the employee who rang the sale.
shopID:
type: string
description: Identifier of the shop where the sale occurred.
registerID:
type: string
description: Identifier of the register used.
SaleLines:
type: object
description: The line items on the sale.
properties:
SaleLine:
type: array
items:
$ref: '#/components/schemas/SaleLine'
SaleLine:
type: object
description: A single line item on a sale.
properties:
saleLineID:
type: string
description: Unique sale-line identifier.
itemID:
type: string
description: Identifier of the item sold.
saleID:
type: string
description: Identifier of the parent sale.
unitQuantity:
type: string
description: Quantity sold.
unitPrice:
type: string
description: Price per unit.
normalUnitPrice:
type: string
description: List price per unit before discounts.
discountID:
type: string
description: Identifier of any applied discount.
Attributes:
type: object
description: Pagination metadata returned in list responses.
properties:
count:
type: integer
description: Total number of matching records.
offset:
type: integer
description: Offset of the current page.
limit:
type: integer
description: Page size limit.
parameters:
accountID:
name: accountID
in: path
required: true
description: The numeric Lightspeed Retail account identifier, resolved via GET /Account.json.
schema:
type: string
saleID:
name: saleID
in: path
required: true
description: The unique identifier of the sale.
schema:
type: string
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'