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'