Properties
| Name | Type | Description |
|---|---|---|
| saleID | string | Unique sale identifier. |
| timeStamp | string | When the sale occurred. |
| completed | boolean | Whether the sale has been completed. |
| total | string | Sale total including tax. |
| totalDue | string | Amount still owed on the sale. |
| displayableTotal | string | Human-readable total. |
| discountPercent | string | Sale-level discount percentage. |
| customerID | string | Identifier of the customer on the sale. |
| employeeID | string | Identifier of the employee who rang the sale. |
| shopID | string | Identifier of the shop where the sale occurred. |
| registerID | string | Identifier of the register used. |
| SaleLines | object | The line items on the sale. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Sale",
"description": "A point-of-sale transaction.",
"$id": "https://raw.githubusercontent.com/api-evangelist/lightspeed-pos/refs/heads/main/json-schema/retail-r-series-sale-schema.json",
"type": "object",
"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": {
"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."
}
}
}
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/retail-r-series-sale"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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.