Lightspeed Sale API
Point-of-sale transactions and their line items.
Point-of-sale transactions and their line items.
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-sale-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:
title: Lightspeed Retail R-Series Sale API
description: 'OpenAPI 3.1 representation of the Lightspeed Retail R-Series REST API
(the original Lightspeed Retail / Retail Pro cloud POS). The R-Series API
is documented at https://developers.lightspeedhq.com/retail/introduction/introduction/
and exposes account-scoped resources under
https://api.lightspeedapp.com/API/V3/Account/{accountID}. It uses OAuth 2.0
with scope-based access control and supports both JSON (`.json`) and XML
response formats. The numeric `accountID` is not the OAuth client_id; it
must be resolved via `GET /API/V3/Account.json` immediately after the token
exchange and is required for every subsequent account-scoped call.
'
version: 3.0.0
contact:
name: Lightspeed Commerce
url: https://developers.lightspeedhq.com/retail/introduction/introduction/
x-generated-from: documentation
x-last-validated: '2026-06-02'
x-source-url: https://developers.lightspeedhq.com/retail/introduction/introduction/
servers:
- url: https://api.lightspeedapp.com/API/V3
description: Lightspeed Retail R-Series API host.
security:
- OAuth2: []
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:
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.
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'
parameters:
saleID:
name: saleID
in: path
required: true
description: The unique identifier of the sale.
schema:
type: string
accountID:
name: accountID
in: path
required: true
description: The numeric Lightspeed Retail account identifier, resolved via GET /Account.json.
schema:
type: string
securitySchemes:
OAuth2:
type: oauth2
description: OAuth 2.0 authorization-code flow with scope-based access control.
flows:
authorizationCode:
authorizationUrl: https://cloud.lightspeedapp.com/oauth/authorize.php
tokenUrl: https://cloud.lightspeedapp.com/oauth/access_token.php
scopes:
employee:all: Full access to all account resources.
employee:admin: Manage employees and shops.
employee:inventory: Create and modify inventory items.
employee:inventory_read: Read inventory items and catalog.
employee:register: Create sales at the register.
employee:reports: Read sales and reporting data.
employee:customers: Create and modify customers.
employee:customers_read: Read customers.