openapi: 3.2.0 info: contact: email: x-series.api@lightspeedhq.com name: Lightspeed Developer Relations url: https://developers.retail.lightspeed.app description: Lightspeed Retail (X-Series) API. license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html termsOfService: https://developers.lightspeedhq.com/terms title: 2026-07 Quotes API version: 2026-07 servers: - url: https://{domain_prefix}.retail.lightspeed.app/api/2026-07 variables: domain_prefix: default: example description: Domain prefix of the store to be operated on security: - bearerAuth: [] tags: - description: Quotes operations name: Quotes paths: /quotes: get: description: 'Returns a paginated list of quotes. 🔒 Requires: `sales:read` scope' operationId: get-quotes parameters: - description: The lower limit for the quote id to be included in the response. For proper pagination, it needs to be the quote id of the last item in the response from your previous request. in: query name: after schema: format: int64 type: integer - description: The maximum number of items to be returned in the response. in: query name: limit schema: default: 100 format: int64 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/QuotesCollection' description: OK summary: List Quotes tags: - Quotes /quotes/{quote_id}: parameters: - description: ID of the quote to get in: path name: quote_id required: true schema: type: string get: description: 'Returns a single quote with a given ID. 🔒 Requires: `sales:read` scope' operationId: get-quote-quote_id responses: '200': content: application/json: schema: $ref: '#/components/schemas/Quote' description: OK summary: Get Quote tags: - Quotes components: schemas: Quote: properties: created_at: type: string customer_id: type: string deleted_at: type: - string - 'null' expired_at: type: string grand_total: type: number id: type: string loyalty: type: - number - 'null' note: type: - string - 'null' outlet_id: type: string products: items: $ref: '#/components/schemas/QuoteProduct' type: array register_id: type: string retailer_id: type: string sales_ids: items: type: - string - 'null' type: - array - 'null' short_code: type: string status: type: string total_price: type: number total_tax: type: number updated_at: type: string user_id: type: string type: object x-examples: example-1: created_at: '2022-10-18T10:50:32.11075Z' customer_id: 0242ac11-0002-11ea-eb21-8ab06c5364f5 deleted_at: null expired_at: '2022-11-17T10:50:32.110752Z' grand_total: 40 id: '1582323235375263744' loyalty: 0.1 note: '' outlet_id: 0242ac12-0002-11e9-e8c4-659494e196e3 products: [] register_id: 0242ac12-0002-11e9-e8c4-659494e17cee retailer_id: 00000000-0001-0001-0001-000000000001 sales_ids: - 3bb73da7-100e-b22d-11ed-3e4f2ef71242 - 3bb73da7-100e-b9fb-11ed-3e524bc97ad5 short_code: '1' status: CREATED total_price: 34.78261 total_tax: 5.21739 updated_at: '2022-10-18T10:50:32.255336Z' user_id: 08002782-0c90-11e6-e3ed-117ec127b1ca QuoteProduct: properties: discount: type: number id: type: string note: type: string price: type: number product_id: type: string product_tax_components: items: $ref: '#/components/schemas/QuotesProductsTaxComponents' type: array quantity: type: integer quote_id: type: string salesperson_id: type: string sequence: type: integer tax: type: number tax_id: type: string type: object x-examples: example-1: discount: 20 id: '1582323235375263747' note: '' price: 17.3913 product_id: 0242ac12-0002-11e9-e8c4-659494e33153 product_tax_components: - id: '1582323235375263748' quote_product_id: '1582323235375263747' rate_id: 06b96260-3efa-11ed-a218-0242ac110002 total_tax: 2.6087 quantity: 1 quote_id: '1582323235375263744' salesperson_id: 08002782-0c90-11e6-e3ed-117ec127b1ca sequence: 1 tax: 2.6087 tax_id: 00000000-0002-0002-0002-000000000003 QuotesCollection: properties: HasNext: type: boolean Quotes: items: $ref: '#/components/schemas/Quote' type: - array - 'null' TotalCount: type: integer type: object x-examples: example-1: HasNext: false Quotes: - created_at: '2022-10-18T10:50:32.11075Z' customer_id: 0242ac11-0002-11ea-eb21-8ab06c5364f5 deleted_at: null expired_at: '2022-11-17T10:50:32.110752Z' grand_total: 20 id: '1582323235375263744' loyalty: 0.1 note: '' outlet_id: 0242ac12-0002-11e9-e8c4-659494e196e3 products: - discount: 20 id: '1582323235375263745' note: '' price: 17.3913 product_id: 0242ac12-0002-11e9-e8c4-659494e33153 product_tax_components: - id: '1582323235375263748' quote_product_id: '1582323235375263747' rate_id: 06b96260-3efa-11ed-a218-0242ac110002 total_tax: 2.6087 quantity: 1 quote_id: '1582323235375263744' salesperson_id: 08002782-0c90-11e6-e3ed-117ec127b1ca sequence: 0 tax: 2.6087 tax_id: 00000000-0002-0002-0002-000000000003 register_id: 0242ac12-0002-11e9-e8c4-659494e17cee retailer_id: 00000000-0001-0001-0001-000000000001 sales_ids: null short_code: '1' status: CREATED total_price: 34.78261 total_tax: 5.21739 updated_at: '2022-10-18T10:50:32.255336Z' user_id: 08002782-0c90-11e6-e3ed-117ec127b1ca TotalCount: 1 QuotesProductsTaxComponents: properties: id: type: string quote_product_id: type: string rate_id: type: string total_tax: type: number type: object x-examples: example-1: id: '1582323235375263746' quote_product_id: '1582323235375263745' rate_id: 06b96260-3efa-11ed-a218-0242ac110002 total_tax: 2.6087 securitySchemes: bearerAuth: description: Bearer Token for API authentication. scheme: bearer type: http externalDocs: description: List of tz database time zones url: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones