Lightspeed Commerce · Schema
Sale Response
CommercePoint-of-SaleRetailRestaurantInventoryLoyaltyPaymentsE-CommerceOmnichannelCanada
Properties
| Name | Type | Description |
|---|---|---|
| data | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/lightspeed/main/json-schema/lightspeed-sale-response-schema.json",
"title": "Sale Response",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/lightspeed-sales-api-openapi.yml#/components/schemas/SaleResponse",
"properties": {
"data": {
"$ref": "#/$defs/Sale"
}
},
"type": "object",
"$defs": {
"CustomizationFile": {
"properties": {
"filename": {
"description": "The name of the file.",
"type": "string"
},
"id": {
"description": "The ID of the file.",
"type": "string"
},
"provider": {
"description": "Storage provider of the file.",
"type": "string"
},
"size": {
"description": "Size of the file in bytes.",
"type": "integer"
}
},
"title": "Customization File",
"type": "object"
},
"EcomCustomCharge": {
"properties": {
"name": {
"description": "Display name of eCom custom charge",
"type": "string"
},
"source_id": {
"description": "Unique identifier of eCom custom charge type",
"type": "string"
},
"tax_components": {
"description": "Collection of tax components associated with specific eCom custom charge",
"items": {
"$ref": "#/$defs/EcomCustomChargeTaxComponent"
},
"type": "array"
},
"total": {
"description": "Tax exclusive amount for specific eCom custom charge",
"format": "double",
"type": "number"
},
"total_incl": {
"description": "Tax inclusive amount for specific eCom custom charge",
"format": "double",
"type": "number"
},
"total_tax": {
"description": "Total tax for specific eCom custom charge",
"format": "double",
"type": "number"
}
},
"title": "Ecom Custom Charges",
"type": "object"
},
"EcomCustomChargeTaxComponent": {
"properties": {
"rate_id": {
"description": "Tax rate ID.",
"type": "string"
},
"total_tax": {
"description": "Tax total.",
"format": "double",
"type": "number"
}
},
"title": "Ecom Custom Charge Tax Component",
"type": "object"
},
"LineItemCustomization": {
"properties": {
"field_type": {
"description": "The field type of the customization.",
"type": "string"
},
"files": {
"description": "Files attached to this customization.",
"items": {
"$ref": "#/$defs/CustomizationFile"
},
"type": "array"
},
"id": {
"description": "The ID of the customization.",
"type": "string"
},
"name": {
"description": "The name of the customization.",
"type": "string"
},
"value": {
"description": "The value of the customization.",
"type": "string"
}
},
"title": "Line Item Customization",
"type": "object"
},
"LineItemProductDetails": {
"properties": {
"id": {
"description": "The ID of the product associated with this line item.",
"format": "uuid",
"type": "string"
}
},
"title": "Line Item Product Details",
"type": "object"
},
"LineItemPromotion": {
"properties": {
"amount": {
"description": "Promotion discount amount.",
"format": "double",
"type": "number"
},
"id": {
"description": "Promotion ID.",
"type": "string"
},
"name": {
"description": "Promotion name.",
"type": "string"
},
"promo_code": {
"description": "Promo code used.",
"type": "string"
},
"promo_code_id": {
"description": "Promo code ID.",
"type": "string"
}
},
"title": "Line Item Promotion",
"type": "object"
},
"LineItemResponseMetadata": {
"properties": {
"is_price_override": {
"description": "Indicates whether the price was overridden, preventing recalculation of the total price based on the price from the database.",
"type": "boolean"
},
"sequence": {
"description": "Order of the line item in the sale.",
"type": "integer"
},
"tax_components": {
"description": "Tax components for this line item.",
"items": {
"$ref": "#/$defs/LineItemTaxComponentResponse"
},
"type": "array"
}
},
"title": "Line Item Response Metadata",
"type": "object"
},
"LineItemResponsePricing": {
"properties": {
"cost": {
"description": "Unit cost for the line item.",
"format": "double",
"type": "number"
},
"cost_total": {
"description": "Total cost for the line item (`cost` × `quantity`).",
"format": "double",
"type": "number"
},
"discount": {
"description": "Discount value of the line item.",
"format": "double",
"type": "number"
},
"discount_total": {
"description": "Total discount for the line item (`discount` × `quantity`).",
"format": "double",
"type": "number"
},
"loyalty_amount": {
"description": "The value that should be added to associated customer's loyalty balance.",
"format": "double",
"type": "number"
},
"loyalty_amount_total": {
"description": "Total loyalty value for the line item (`loyalty_amount` × `quantity`).",
"format": "double",
"type": "number"
},
"price": {
"description": "Unit price of the line item.",
"format": "double",
"type": "number"
},
"total": {
"description": "Total price for the line item.",
"format": "double",
"type": "number"
}
},
"title": "Line Item Response Pricing",
"type": "object"
},
"LineItemResponseSource": {
"properties": {
"register_id": {
"description": "The ID of the register which was used to add this line item to the sale.",
"format": "uuid",
"type": "string"
}
},
"title": "Line Item Response Source",
"type": "object"
},
"LineItemResponseTax": {
"properties": {
"amount": {
"description": "The unit tax value associated with this line item.",
"format": "double",
"type": "number"
},
"id": {
"description": "The ID of the tax associated with this line item.",
"format": "uuid",
"type": "string"
},
"total": {
"description": "Total tax value.",
"format": "double",
"type": "number"
}
},
"title": "Line Item Response Tax",
"type": "object"
},
"LineItemReturn": {
"properties": {
"is_return": {
"description": "Indicates whether this line item is a return.",
"type": "boolean"
},
"reason": {
"description": "Return reason.",
"type": "string"
}
},
"title": "Line Item Return",
"type": "object"
},
"LineItemSurcharge": {
"properties": {
"tax_components": {
"description": "Collection of tax components associated with the surcharge.",
"items": {
"$ref": "#/$defs/LineItemTaxComponentResponse"
},
"type": "array"
},
"value": {
"description": "Tax exclusive surcharge amount for a specific payment.",
"format": "double",
"type": "number"
}
},
"title": "Line Item Surcharge",
"type": "object"
},
"LineItemTaxComponentResponse": {
"properties": {
"rate_id": {
"description": "Tax rate ID.",
"type": "string"
},
"total_tax": {
"description": "Tax total.",
"format": "double",
"type": "number"
}
},
"title": "Line Item Tax Component",
"type": "object"
},
"PaymentExternalApplication": {
"properties": {
"application_id": {
"description": "ID of the external application.",
"type": "string"
},
"created_at": {
"description": "Creation timestamp in UTC.",
"type": "string"
},
"external_id": {
"description": "ID from the external application.",
"type": "string"
},
"updated_at": {
"description": "Last update timestamp in UTC.",
"type": "string"
}
},
"title": "Payment External Application",
"type": "object"
},
"PaymentExternalAttribute": {
"additionalProperties": true,
"description": "External attributes for the payment. Additional dynamic keys may be present.",
"properties": {
"card_last_four_digits": {
"description": "Last 4 digits of the card.",
"type": "string"
},
"source": {
"description": "Source of the external attribute.",
"type": "string"
},
"transaction_id": {
"description": "Transaction ID from the external system.",
"type": "string"
}
},
"title": "Payment External Attribute",
"type": "object"
},
"PaymentResponseMetadata": {
"properties": {
"register_open_sequence_id": {
"description": "Register open sequence ID.",
"format": "uuid",
"type": "string"
}
},
"title": "Payment Response Metadata",
"type": "object"
},
"PaymentResponseSource": {
"properties": {
"id": {
"description": "Integrator-derived payment source ID. Non-null when the integrator provides a transaction ID.",
"type": "string"
},
"outlet_id": {
"description": "A valid outlet ID.",
"format": "uuid",
"type": "string"
},
"register_id": {
"description": "The ID of the register used to add this payment to the sale.",
"format": "uuid",
"type": "string"
}
},
"title": "Payment Response Source",
"type": "object"
},
"PaymentSurcharge": {
"properties": {
"amount": {
"description": "Surcharge amount.",
"format": "double",
"type": "number"
},
"rule": {
"description": "Specifies the rule of the surcharge to be applied.",
"type": "string"
}
},
"title": "Payment Surcharge",
"type": "object"
},
"PaymentTypeDetails": {
"properties": {
"config_id": {
"description": "Payment type id to be used for the payment.",
"format": "uuid",
"type": "string"
},
"id": {
"description": "**internal** Global payment type ID. Irrelevant for external use.",
"type": "string"
},
"name": {
"description": "The name of the payment type.",
"type": "string"
}
},
"title": "Payment Type Details",
"type": "object"
},
"Sale": {
"description": "Sale object",
"properties": {
"_metadata": {
"$ref": "#/$defs/SaleResponseMetadata"
},
"adjustments": {
"description": "Collection of aggregated adjustments.",
"items": {
"$ref": "#/$defs/SaleResponseAdjustment"
},
"type": "array"
},
"attributes": {
"description": "Attributes for this sale.",
"items": {
"type": "string"
},
"type": "array"
},
"created_at": {
"description": "Creation timestamp in UTC.",
"type": "string"
},
"customer_id": {
"description": "The ID of the customer associated with this sale.",
"format": "uuid",
"type": "string"
},
"date": {
"description": "Sale timestamp in UTC.",
"type": "string"
},
"deleted_at": {
"description": "Deletion timestamp in UTC.",
"type": "string"
},
"ecom_custom_charges": {
"description": "Collection of eCom custom charges associated with the sale.",
"items": {
"$ref": "#/$defs/EcomCustomCharge"
},
"type": "array"
},
"external_applications": {
"description": "External applications associated with the sale.",
"items": {
"$ref": "#/$defs/SaleExternalApplication"
},
"type": "array"
},
"id": {
"description": "Auto-generated object ID.",
"format": "uuid",
"type": "string"
},
"invoice_number": {
"description": "Invoice number which if provided, should use the prefix and suffix defined for the register.",
"type": "string"
},
"line_items": {
"description": "Collection of line items.",
"items": {
"$ref": "#/$defs/SaleResponseLineItem"
},
"type": "array"
},
"note": {
"description": "Sale Note.",
"type": "string"
},
"payments": {
"description": "Collection of payments.",
"items": {
"$ref": "#/$defs/SaleResponsePayment"
},
"type": "array"
},
"receipt_number": {
"description": "The receipt number for the sale.",
"type": "string"
},
"return": {
"$ref": "#/$defs/SaleReturn"
},
"short_code": {
"description": "Short, unique code used for loyalty tracking purposes.",
"type": "string"
},
"source": {
"$ref": "#/$defs/SaleResponseSource"
},
"state": {
"description": "State of the sale.",
"enum": [
"parked",
"pending",
"voided",
"closed"
],
"type": "string"
},
"taxes": {
"description": "Collection of taxes.",
"items": {
"$ref": "#/$defs/SaleResponseTax"
},
"type": "array"
},
"totals": {
"$ref": "#/$defs/SaleTotals"
},
"updated_at": {
"description": "Last update timestamp in UTC.",
"type": "string"
}
},
"title": "Sale",
"type": "object"
},
"SaleAuthor": {
"properties": {
"id": {
"description": "The ID of the user (cashier) who created the sale.",
"format": "uuid",
"type": "string"
}
},
"title": "Sale Author",
"type": "object"
},
"SaleExternalApplication": {
"properties": {
"application_id": {
"description": "ID of the external application.",
"type": "string"
},
"created_at": {
"description": "Creation timestamp in UTC.",
"type": "string"
},
"external_id": {
"description": "ID from the external application.",
"type": "string"
},
"updated_at": {
"description": "Last update timestamp in UTC.",
"type": "string"
},
"version": {
"description": "Version of the external application record.",
"type": "string"
}
},
"title": "Sale External Application",
"type": "object"
},
"SaleResponseAdjustment": {
"description": "Sale-level adjustment totals compounded by adjustment type. E-commerce custom charge adjustments are returned separately in `ecom_custom_charges`.",
"properties": {
"adjustment_type": {
"description": "The adjustment type, such as `NON_CASH_FEE` or `SURCHARGE`.",
"type": "string"
},
"name": {
"description": "Display name from the first adjustment in the compounded adjustment group.",
"type": "string"
},
"tax_components": {
"description": "Tax component totals for this adjustment group.",
"items": {
"$ref": "#/$defs/LineItemTaxComponentResponse"
},
"type": "array"
},
"total": {
"description": "Sum of fixed, non-each adjustment values for this credit or debit adjustment group.",
"format": "double",
"type": "number"
}
},
"title": "Sale Response Adjustment",
"type": "object"
},
"SaleResponseLineItem": {
"properties": {
"_metadata": {
"$ref": "#/$defs/LineItemResponseMetadata"
},
"customizations": {
"description": "Product customizations for this line item.",
"items": {
"$ref": "#/$defs/LineItemCustomization"
},
"type": "array"
},
"gift_card_number": {
"description": "Gift card number if this line item is a gift card.",
"type": "string"
},
"id": {
"description": "The ID of this line item.",
"format": "uuid",
"type": "string"
},
"note": {
"description": "Line item note.",
"type": "string"
},
"pricing": {
"$ref": "#/$defs/LineItemResponsePricing"
},
"product": {
"$ref": "#/$defs/LineItemProductDetails"
},
"promotions": {
"description": "Promotions applied to this line item.",
"items": {
"$ref": "#/$defs/LineItemPromotion"
},
"type": "array"
},
"quantity": {
"description": "Quantity of products for the line item.",
"format": "double",
"type": "number"
},
"return": {
"$ref": "#/$defs/LineItemReturn"
},
"salesperson_id": {
"description": "The ID of the salesperson associated with this line item. Salesperson IDs can be retrieved from the /api/2.0/users endpoint. Only needed when this line item is not sold by current login user.",
"format": "uuid",
"type": "string"
},
"source": {
"$ref": "#/$defs/LineItemResponseSource"
},
"status": {
"description": "If defined as `CONFIRMED` for pending sales, the line item will be added as **read-only**.",
"type": "string"
},
"surcharges": {
"description": "Collection of surcharges associated with the line item.",
"items": {
"$ref": "#/$defs/LineItemSurcharge"
},
"type": "array"
},
"tax": {
"$ref": "#/$defs/LineItemResponseTax"
}
},
"title": "Sale Response Line Item",
"type": "object"
},
"SaleResponseMetadata": {
"properties": {
"complete_open_sequence_id": {
"description": "The sequence ID of the register open at the time the sale was completed.",
"type": "string"
},
"has_unsynced_on_account_payments": {
"description": "Whether the sale has unsynced on-account payments.",
"type": "boolean"
},
"version": {
"description": "Monotonically increasing version number of the sale.",
"type": "integer"
},
"xero_reference": {
"description": "Xero invoice reference ID. Only editable for `ONACCOUNT` sales.",
"type": "string"
}
},
"title": "Sale Response Metadata",
"type": "object"
},
"SaleResponsePayment": {
"properties": {
"_metadata": {
"$ref": "#/$defs/PaymentResponseMetadata"
},
"amount": {
"description": "Payment amount.",
"format": "double",
"type": "number"
},
"billing_address_id": {
"description": "The ID of the billing address associated with this payment.",
"format": "uuid",
"type": "string"
},
"date": {
"description": "Payment date in UTC.",
"type": "string"
},
"deleted_at": {
"description": "Deletion timestamp in UTC.",
"type": "string"
},
"external_applications": {
"description": "External applications associated with the payment.",
"items": {
"$ref": "#/$defs/PaymentExternalApplication"
},
"type": "array"
},
"external_attributes": {
"description": "External attributes for the payment.",
"items": {
"$ref": "#/$defs/PaymentExternalAttribute"
},
"type": "array"
},
"id": {
"description": "Auto-generated payment ID.",
"format": "uuid",
"type": "string"
},
"source": {
"$ref": "#/$defs/PaymentResponseSource"
},
"surcharge": {
"$ref": "#/$defs/PaymentSurcharge"
},
"type": {
"$ref": "#/$defs/PaymentTypeDetails"
}
},
"title": "Sale Response Payment",
"type": "object"
},
"SaleResponseSource": {
"properties": {
"author": {
"$ref": "#/$defs/SaleAuthor"
},
"id": {
"description": "The ID of the sale on the client side or another system where the sale was originally created.",
"type": "string"
},
"outlet_id": {
"description": "The ID of the outlet where the sale was created.",
"format": "uuid",
"type": "string"
},
"register_id": {
"description": "The ID of the register where the sale was created.",
"format": "uuid",
"type": "string"
},
"type": {
"description": "This is the identifier of the 3rd party system that the `source_id` is associated with. 'Xero' or 'Magento' would be examples.",
"type": "string"
}
},
"title": "Sale Response Source",
"type": "object"
},
"SaleResponseTax": {
"properties": {
"id": {
"description": "Auto-generated object ID.",
"format": "uuid",
"type": "string"
},
"tax": {
"description": "The total tax value for this tax.",
"format": "double",
"type": "number"
}
},
"title": "Sale Response Tax",
"type": "object"
},
"SaleReturn": {
"properties": {
"is_return": {
"description": "Indicates whether this sale is a return.",
"type": "boolean"
},
"original_sale_id": {
"description": "Reference ID to a different sale if this sale was created as a return.",
"type": "string"
},
"return_sale_ids": {
"description": "IDs of return sales created from this sale.",
"items": {
"type": "string"
},
"type": "array"
}
},
"title": "Sale Return",
"type": "object"
},
"SaleTotals": {
"properties": {
"loyalty": {
"description": "Total loyalty value for this sale.",
"format": "double",
"type": "number"
},
"price": {
"description": "Total price for this sale, tax exclusive.",
"format": "double",
"type": "number"
},
"price_incl_tax": {
"description": "Total price for this sale, tax inclusive.",
"format": "double",
"type": "number"
},
"surcharge": {
"description": "Total surcharge value for this sale.",
"format": "double",
"type": "number"
},
"tax": {
"description": "Total tax value for this sale.",
"format": "double",
"type": "number"
}
},
"title": "Sale Totals",
"type": "object"
}
}
}
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/lightspeed-sale-response"
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.