Lightspeed Sale API

Point-of-sale transactions and their line items.

OpenAPI Specification

lightspeed-pos-sale-api-openapi.yml Raw ↑
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'