{ "$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." } } } } } } } }