Lightspeed Financial API

V1 endpoints (`/f/finance/...`) for retrieving sales and financial data. For the newer V2 versions of these endpoints see FinancialV2 ### V1 behaviour - **Sorting**: No guaranteed sorting order; internal transformations may alter order unpredictably - **Transitory Accounts / Unsettled Sales**: Returns closed transactions only - **Pagination**: `pageSize` max of 1000. Uses HATEOAS `_links` with `self` and `nextPage` URLs - **Daily endpoints** (`getDailyFinancials`): No pagination, no hard cap on results. May have slower response times for larger data sets - **Backoffice transactions**: Historical dating supported. Transactions will be dated to a past date if the action impacts past reports. Can query transactions by original business date - **Backoffice modifications** (payment method change and canceling): Modifications appear on the original transaction date

OpenAPI Specification

lightspeed-pos-financial-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 1.0.0
  title: Lightspeed Restaurant K Series Account Financial API
  description: '**Lightspeed Restaurant** offers a **REST API** in order to communicate with the data in the system. These APIs are built using the RESTful standards and adhere to the basic verb interactions as defined by the REST standard.

    Detailed developer guides can be found in the [Lightspeed Restaurant API Portal](https://api-portal.lsk.lightspeed.app/).

    These services are in continuous development and subject to change. Please find our versioning policy [here](https://api-portal.lsk.lightspeed.app/quick-start/versioning).

    '
  x-logo:
    altText: Lightspeed Commerce
    url: static/lightspeed@2x.png
  contact:
    name: Lightspeed Commerce
    url: https://api-portal.lsk.lightspeed.app/
  x-generated-from: documentation
  x-last-validated: '2026-06-02'
  x-source-url: https://api-docs.lsk.lightspeed.app/source.json
servers:
- url: https://api.trial.lsk.lightspeed.app
  description: Demo URL
  x-bump-branch-name: demo
- url: https://api.lsk.lightspeed.app
  description: Production URL
  x-bump-branch-name: prod
tags:
- name: Financial
  description: 'V1 endpoints (`/f/finance/...`) for retrieving sales and financial data.


    For the newer V2 versions of these endpoints see FinancialV2


    ### V1 behaviour


    - **Sorting**: No guaranteed sorting order; internal transformations may alter order unpredictably

    - **Transitory Accounts / Unsettled Sales**: Returns closed transactions only

    - **Pagination**: `pageSize` max of 1000. Uses HATEOAS `_links` with `self` and `nextPage` URLs

    - **Daily endpoints** (`getDailyFinancials`): No pagination, no hard cap on results. May have slower response times for larger data sets

    - **Backoffice transactions**: Historical dating supported. Transactions will be dated to a past date if the action impacts past reports. Can query transactions by original business date

    - **Backoffice modifications** (payment method change and canceling): Modifications appear on the original transaction date

    '
paths:
  /f/data/businesses:
    get:
      summary: Lightspeed Get Businesses
      operationId: financial-apiGetBusinesses
      description: Returns all businesses the token has access to. Pagination is supported by providing the `page` and `size` query parameters. The maximum number of business locations per business returned is 500.
      tags:
      - Financial
      parameters:
      - description: Starting page of results, when paginating.
        in: query
        name: page
        required: false
        schema:
          default: 0
          format: int32
          type: integer
      - description: Number of results to return, when paginating.
        in: query
        name: size
        required: false
        schema:
          default: 1000
          format: int32
          type: integer
      responses:
        '200':
          description: Businesses returned
          content:
            application/json:
              schema:
                properties:
                  _embedded:
                    properties:
                      businessList:
                        items:
                          properties:
                            businessName:
                              type: string
                              example: My Business
                              description: The name of the business.
                            businessId:
                              type: number
                              example: 1234
                              description: The unique identifier for the business.
                            currencyCode:
                              type: string
                              description: The ISO 4217 currency code
                              example: GBP
                            businessLocations:
                              items:
                                properties:
                                  blName:
                                    type: string
                                    example: My Business Location 1
                                    description: The name of the business location.
                                  blID:
                                    type: number
                                    example: 1234567890
                                    description: The unique identifier for the business location.
                                  country:
                                    type: string
                                    example: GB
                                    description: The ISO 3166 country code.
                                  timezone:
                                    type: string
                                    example: Europe/London
                                    description: The time zone in ICANN format.
                                type: object
                              type: array
                          type: object
                        type: array
                    type: object
                  _links:
                    properties:
                      self:
                        properties:
                          href:
                            example: https:///api.ikentoo.com/data/businesses
                            type: string
                        type: object
                    type: object
                type: object
              examples:
                Financial-apiGetBusinesses200Example:
                  summary: Default financial-apiGetBusinesses 200 response
                  x-microcks-default: true
                  value:
                    _embedded:
                      businessList:
                      - businessName: My Business
                        businessId: 1234
                        currencyCode: GBP
                        businessLocations:
                        - {}
                    _links:
                      self:
                        href: https:///api.ikentoo.com/data/businesses
      security:
      - OAuth2:
        - financial-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /f/finance/{businessLocationId}/tax-rates:
    get:
      summary: Lightspeed Get Tax Rates
      operationId: financial-apiGetTaxRates
      description: Returns tax rates for a business location.
      parameters:
      - $ref: '#/components/parameters/financial-apiBusinessLocationId'
      tags:
      - Financial
      responses:
        '200':
          description: Tax rates returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial-apiResourcesTaxRate'
              examples:
                Financial-apiGetTaxRates200Example:
                  summary: Default financial-apiGetTaxRates 200 response
                  x-microcks-default: true
                  value:
                    _embedded:
                      taxRateList:
                      - {}
                    _links:
                      self:
                        href: https://api.ikentoo.com/f/finance/141948669132802/tax-rates
      security:
      - OAuth2:
        - financial-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /f/finance/{businessLocationId}/paymentMethods:
    get:
      summary: Lightspeed Get Payment Methods
      operationId: financial-apiGetPaymentMethods
      description: Returns all payment methods for a business location.
      parameters:
      - $ref: '#/components/parameters/financial-apiBusinessLocationId'
      tags:
      - Financial
      responses:
        '200':
          description: Payment methods returned
          content:
            application/json:
              schema:
                properties:
                  _embedded:
                    properties:
                      paymentMethodList:
                        items:
                          properties:
                            name:
                              type: string
                              description: Name of the payment type.
                              example: Cash
                            code:
                              type: string
                              description: System code for the payment type.
                              example: CASH
                            accountingReference:
                              type: string
                              description: Accounting reference code, if assigned.
                              example: cash-payment
                            pmId:
                              type: number
                              description: System identification number for payment type.
                              example: 1234567890
                          type: object
                        type: array
                    type: object
                  _links:
                    properties:
                      self:
                        properties:
                          href:
                            example: https:///api.ikentoo.com/finance/1234567/paymentMethodss
                            type: string
                        type: object
                    type: object
                type: object
              examples:
                Financial-apiGetPaymentMethods200Example:
                  summary: Default financial-apiGetPaymentMethods 200 response
                  x-microcks-default: true
                  value:
                    _embedded:
                      paymentMethodList:
                      - name: Cash
                        code: CASH
                        accountingReference: cash-payment
                        pmId: 1234567890
                    _links:
                      self:
                        href: https:///api.ikentoo.com/finance/1234567/paymentMethodss
      security:
      - OAuth2:
        - financial-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /f/finance/{businessLocationId}/accountingGroups:
    get:
      summary: Lightspeed Get Accounting Groups
      operationId: financial-apiGetAccountingGroups
      description: Returns all accounting groups for a business location.
      parameters:
      - $ref: '#/components/parameters/financial-apiBusinessLocationId'
      tags:
      - Financial
      responses:
        '200':
          description: Accounting groups returned
          content:
            application/json:
              schema:
                properties:
                  _embedded:
                    description: The list of accounting groups.
                    properties:
                      accountingGroupList:
                        items:
                          properties:
                            accountingGroupId:
                              type: number
                              example: 1234567890
                              description: The numeric identifier of the accounting group.
                            name:
                              type: string
                              example: Food
                              description: The name of the accounting group.
                            statisticGroup:
                              type: string
                              example: '[{"category":"default","value":"Food"}]'
                              description: The assigned statistic group, if applicable.
                            code:
                              type: string
                              example: fd
                              description: The code assigned to the accounting group, if applicable.
                          type: object
                        type: array
                    type: object
                  _links:
                    properties:
                      self:
                        properties:
                          href:
                            example: https://api.ikentoo.com/f/finance/1234567/accountingGroups
                            type: string
                        type: object
                    type: object
                type: object
              examples:
                Financial-apiGetAccountingGroups200Example:
                  summary: Default financial-apiGetAccountingGroups 200 response
                  x-microcks-default: true
                  value:
                    _embedded:
                      accountingGroupList:
                      - accountingGroupId: 1234567890
                        name: Food
                        statisticGroup: '[{"category":"default","value":"Food"}]'
                        code: fd
                    _links:
                      self:
                        href: https://api.ikentoo.com/f/finance/1234567/accountingGroups
        '400':
          description: Bad Request
      security:
      - OAuth2:
        - financial-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /f/finance/{businessLocationId}/financials/{from}/{to}:
    get:
      summary: Lightspeed Get Financials
      operationId: financial-apiGetFinancials
      description: 'Returns financial data for a business location for a specified date range.


        Note: Will only return sales created after migration from iKentoo 2.0 to Lightspeed K-Series.'
      parameters:
      - $ref: '#/components/parameters/financial-apiBusinessLocationId'
      - schema:
          example: '2022-09-21T10:11:56Z'
          type: string
          format: date-time
        name: from
        description: 'Start of requested results, in ISO 8601 format.


          The date range between ''from'' and ''to'' cannot exceed 365 days (1 year).


          Example:`2022-09-21T10:11:56Z` or `2022-09-21T06:11:56-04:00`'
        in: path
        required: true
      - schema:
          example: '2022-09-21T10:11:56Z'
          type: string
          format: date-time
        name: to
        description: 'End of requested results, in ISO 8601 format.


          Example:`2022-09-21T10:11:56Z` or `2022-09-21T06:11:56-04:00`'
        in: path
        required: true
      - $ref: '#/components/parameters/financial-apiIncludeParameter'
      - schema:
          default: 1000
          maximum: 1000
          type: integer
          format: int32
        name: pageSize
        description: Number of entries to return.
        in: query
        required: false
      - schema:
          type: string
        name: nextPageToken
        description: 'The `accountId` where the results should begin.


          Example: `A65315.18`'
        in: query
        required: false
      tags:
      - Financial
      responses:
        '200':
          description: Financials returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial-apiFinancialDto'
              examples:
                Financial-apiGetFinancials200Example:
                  summary: Default financial-apiGetFinancials 200 response
                  x-microcks-default: true
                  value:
                    businessName: My Business
                    nextStartOfDayAsIso8601: '2023-07-28T05:30:00-05:00'
                    businessLocationId: 123456789
                    sales:
                    - accountReference: 57X0j3hzTZ2oo9sdVWiUog==
                      accountFiscId: A65315.17
                      receiptId: R65315.13
                      source: {}
                      salesLines: []
                      payments: []
                      timeofOpening: '2023-02-14T19:58:48.224Z'
                      timeofCloseAndPaid: '2023-02-14T20:04:08.734Z'
                      cancelled: false
                      externalFiscalNumber: example
                      tableNumber: '1'
                      tableName: Dining Room, Table 1
                      accountProfileCode: AAP
                      ownerName: Manager
                      ownerId: 14670
                      type: SALE
                      externalReferences: []
                      nbCovers: 2.0
                      dineIn: true
                      deviceId: 75125
                    dataComplete: false
                    _links:
                      self:
                        href: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments
                        templated: true
                      nextPage:
                        href: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments&nextPageToken=A65315.18
                        templated: true
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                type: object
                additionalProperties:
                  type: object
      security:
      - OAuth2:
        - financial-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /f/finance/{businessLocationId}/dailyFinancials:
    get:
      summary: Lightspeed Get Daily Financials
      operationId: financial-apiGetDailyFinancials
      description: Returns the financial data for the current business day or for the specified date.
      parameters:
      - $ref: '#/components/parameters/financial-apiBusinessLocationId'
      - $ref: '#/components/parameters/financial-apiIncludeParameter'
      - $ref: '#/components/parameters/financial-apiDateParameter'
      - schema:
          example: true
          default: false
          type: boolean
        name: includeConsumers
        in: query
        required: false
      tags:
      - Financial
      responses:
        '200':
          description: Daily financials returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial-apiFinancialDto'
              examples:
                Financial-apiGetDailyFinancials200Example:
                  summary: Default financial-apiGetDailyFinancials 200 response
                  x-microcks-default: true
                  value:
                    businessName: My Business
                    nextStartOfDayAsIso8601: '2023-07-28T05:30:00-05:00'
                    businessLocationId: 123456789
                    sales:
                    - accountReference: 57X0j3hzTZ2oo9sdVWiUog==
                      accountFiscId: A65315.17
                      receiptId: R65315.13
                      source: {}
                      salesLines: []
                      payments: []
                      timeofOpening: '2023-02-14T19:58:48.224Z'
                      timeofCloseAndPaid: '2023-02-14T20:04:08.734Z'
                      cancelled: false
                      externalFiscalNumber: example
                      tableNumber: '1'
                      tableName: Dining Room, Table 1
                      accountProfileCode: AAP
                      ownerName: Manager
                      ownerId: 14670
                      type: SALE
                      externalReferences: []
                      nbCovers: 2.0
                      dineIn: true
                      deviceId: 75125
                    dataComplete: false
                    _links:
                      self:
                        href: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments
                        templated: true
                      nextPage:
                        href: https://api.ikentoo.com/f/finance/141948669132802/financials/2021-08-30T14:00:00Z/2023-09-03T15:30:00Z?pageSize=10&include=payments&nextPageToken=A65315.18
                        templated: true
      security:
      - OAuth2:
        - financial-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /f/finance/{businessLocationId}/saleByExternalReference:
    get:
      summary: Lightspeed Get Receipt by External Reference
      operationId: financial-apiGetReceiptByExternalReference
      description: Returns a single receipt matching the external reference supplied in the request. See [`externalReferences`](https://api-docs.lsk.lightspeed.app/operation/operation-financial-apigetfinancials#operation-financial-apigetfinancials-200-body-application-json-sales-externalreferences) for examples.
      parameters:
      - $ref: '#/components/parameters/financial-apiBusinessLocationId'
      - $ref: '#/components/parameters/financial-apiExternalReferenceId'
      tags:
      - Financial
      responses:
        '200':
          description: Receipt returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/financial-apiSaleDto'
              examples:
                Financial-apiGetReceiptByExternalReference200Example:
                  summary: Default financial-apiGetReceiptByExternalReference 200 response
                  x-microcks-default: true
                  value:
                    accountReference: 57X0j3hzTZ2oo9sdVWiUog==
                    accountFiscId: A65315.17
                    receiptId: R65315.13
                    source:
                      initialAccountId: A65315.13
                      previousAccountId: A65315.15
                    salesLines:
                    - id: S65315.33
                      parentLineId: S65315.32
                      totalNetAmountWithTax: '11.00'
                      totalNetAmountWithoutTax: '8.33'
                      menuListPrice: '10.00'
                      unitCostPrice: '5.00'
                      serviceCharge: '1.00'
                      serviceChargeType: APPORTIONED
                      serviceChargeRate: '10.00'
                      discountAmount: '0.00'
                      taxCode: VAT20
                      taxAmount: '1.6667'
                      taxRatePercentage: '20.00'
                      taxLines: example
                      discountType: DISCOUNT
                      discountCode: 10PCT
                      discountName: 10% Discount
                      accountDiscountAmount: '1.00'
                      accountDiscountType: DISCOUNT
                      accountDiscountCode: Staff 20%
                    payments:
                    - code: CASH
                      description: Cash
                      paymentMethodId: 141948669132824
                      netAmountWithTax: '11.00'
                      currency: GBP
                      tip: '0.00'
                      consumer:
                        id: ec021fb0-4c12-425e-b30f-320ab720448b
                        customerId: 120913
                        title: Mr
                        firstName: John
                        lastName: Doe
                        phoneNumber1: 555-555-5555
                        phoneNumber2: 555-555-5556
                        companyName: Company Name
                        addressLine1: 123 Street st.
                        addressLine2: Unit 123
                        zipCode: '12345'
                        city: Some City
                        state: Some State
                        email: customer@email.com
                        taxIdentifier: '123456789'
                        fiscalCode: '123456789'
                        destinationCode: '123456789'
                      type: NORMAL
                      deviceId: '72676'
                      deviceName: ipad9
                      staffId: 180480
                      staffName: Manager
                      authorization: '001'
                      externalReference: '1000'
                      revenueCenter: Fixed POS
                      revenueCenterId: 141948669132822
                      fiscId: T72691.8
                      uuid: bc7i2X_CTkeg8qlec66wmg==
                      fiscDate: '2023-02-14T20:04:08.665Z'
                      surcharge: '0.00'
                    timeofOpening: '2023-02-14T19:58:48.224Z'
                    timeofCloseAndPaid: '2023-02-14T20:04:08.734Z'
                    cancelled: false
                    externalFiscalNumber: example
                    tableNumber: '1'
                    tableName: Dining Room, Table 1
                    accountProfileCode: AAP
                    ownerName: Manager
                    ownerId: 14670
                    type: SALE
                    externalReferences:
                    - '"TASK:OO-{businessLocationId}-{unique-reference-code}", "TASK:OO-{businessLocationId}-(another-unique-reference-code)"'
                    nbCovers: 2.0
                    dineIn: true
                    deviceId: 75125
      security:
      - OAuth2:
        - financial-api
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /f/finance/{businessLocationId}/aggregatedSales:
    get:
      summary: Lightspeed Get Aggregated Sales
      operationId: financial-apiGetAggregatedSales
      description: 'Get sales for the current business day or the specified date range, aggregated by one or more values.

        The values are specified in the `groupBy` parameter and are nested in the order provided in the request.


        - Use either the `date` parameter **or** the `from` and `to` parameters to specify the period.

        - The `date` parameter specifies a single date for aggregation.

        - The `from` and `to` parameters specify a date-time range and must be used together.

        - **If neither `date` nor `from`/`to` are provided it defaults to today''s date**.

        - The date range between `from` and `to` cannot exceed 365 days (1 year).

        '
      parameters:
      - $ref: '#/components/parameters/financial-apiBusinessLocationId'
      - name: date
        in: query
        required: false
        description: 'Specify a single date for which to retrieve aggregated sales data. Cannot be combined with `from` and `to`. Use either `date`, or both `from` and `to`.

          '
        schema:
          type: string
          format: date
      - name: from
        in: query
        required: false
        description: 'Specify the start datetime for the aggregation range. Must be used together with `to`. Cannot be combined with `date`.

          '
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        required: false
        description: 'Specify the end datetime for the aggregation range. Must be used together with `from`. Cannot be combined with `date`.

          '
        schema:
          type: string
          format: date-time
      - $ref: '#/components/parameters/financial-apiFlattenedParameter'
      - $ref: '#/components/parameters/financial-apiGroupByParameter'
      tags:
      - Financial
      responses:
        '200':
          description: Aggregated sales returned
          content:
            application/json:
              schema:
                properties:
                  groupByKey:
                    type: string
                    description: The groupBy parameter provided.
                    examples:
                    - staff
                  groupByValue:
                    type: string
                    description: The value that corresponds to the groupBy parameter.
                    examples:
                    - manager
                  totalAmount:
                    type: string
                    description: 'The aggregated total of sales for this data set (ex. `staff: manager`).'
                    examples:
                    - '47.00'
                  serviceCharge:
                    type: string
                    description: 'The aggregated total of service charges for this data set (ex. `staff: manager`).'
                    examples:
                    - '0.00'
                  totalDiscountedAmount:
                    type: string
                    description: 'The aggregated total of discounts for this data set (ex. `staff: manager`).'
                    examples:
                    - '0.00'
                  totalTaxAmount:
                    type: string
                    description: 'The aggregated tax total for this data set (ex. `staff: manager`).'
                    examples:
                    - '7.04'
                  numberOfSales:
                    type: number
                    description: 'The total number of sale lines for this data set (ex. `staff: manager`).'
                    examples:
                    - 7.0
                  children:
                    items:
                      properties:
                        groupByKey:
                          type: string
                          description: The second groupBy parameter provided, if applicable. The parameters will be nested based on the order provided. For example, `staff,device` will show totals for each `staff` value, and then those totals broken down by `device`.
                          example: device
                        children:
                          items:
                            properties:
                              groupByValue:
                                type: string
                                description: The value that corresponds to the second groupBy parameter provided.
                                example: iPad7
                              totalAmount:
                                type: string
                                description: 'The aggregated total of sales for this nested data set (ex. `staff:manager -> device: iPad7 `).'
                                example: '28.00'
                              serviceCharge:
                                type: string
                                description: 'The aggregated total of service charges for this nested data set (ex. `staff:manager -> device: iPad7 `).'
                                example: '0.00'
                              totalDiscountedAmount:
                                type: string
                                description: 'The aggregated total of discounts for this nested data set (ex. `staff:manager -> device: iPad7 `).'
                                example: '0.00'
                              totalTaxAmount:
                                type: string
                                description: 'The aggregated tax total for this nested data set (ex. `staff:manager -> device: iPad7 `).'
                                example: '4.19'
                              numberOfSales:
                                type: number
                                description: 'The total number of sales for this nested data set (ex. `staff:manager -> device: iPad7 `).'
                                example: 3.0
                              children:
                                items:
                                  properties:
                                    groupByKey:
                                      type: string
                                    children:
                                      description: This would continue with as many nested data sets as specified by the groupBy parameters.
                                      items:
                                        properties: {}
                                        type: object
                                      type: array
                                  type: object
                                type: array
                            type: object
                          type: array
                      type: object
                    type: array
                  nextStartOfDayAsIso8601:
                    type: string
                  dataComplete:
                    type: boolean
                  businessName:
                    type: string
                type: object
              examples:
                Financial-apiGetAggregatedSales200Example:
                  summary: Default financial-apiGetAggregatedSales 200 response
                  x-microcks-default: true
                  value:
                    groupByKey: example
                    groupByValue: example
                    totalAmount: '12.50'
                    serviceCharge: example
                    totalDiscountedAmount: '12.50'
                    totalTaxAmount: '12.50'
                    numberOfSales: 49.89
                    children:
     

# --- truncated at 32 KB (58 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lightspeed-pos/refs/heads/main/openapi/lightspeed-pos-financial-api-openapi.yml