{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/lightspeed/main/json-schema/lightspeed-financial-api-financial-dto-schema.json",
  "title": "financial-apiFinancialDto",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/lightspeed-financial-api-openapi.yml#/components/schemas/financial-apiFinancialDto",
  "properties": {
    "businessName": {
      "type": "string",
      "description": "Name of the business"
    },
    "nextStartOfDayAsIso8601": {
      "type": "string",
      "description": "Start of next business day, in the merchant's local time."
    },
    "businessLocationId": {
      "type": "number",
      "description": "The unique identifier for the business location."
    },
    "sales": {
      "items": {
        "$ref": "#/$defs/financial-apiSaleDto"
      },
      "type": "array"
    },
    "dataComplete": {
      "type": "boolean"
    },
    "_links": {
      "properties": {
        "self": {
          "properties": {
            "href": {
              "type": "string"
            },
            "templated": {
              "type": "boolean"
            }
          },
          "type": "object"
        },
        "nextPage": {
          "properties": {
            "href": {
              "description": "The URL for the next set of results.",
              "type": "string"
            },
            "templated": {
              "type": "boolean"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    }
  },
  "$defs": {
    "financial-apiSaleDto": {
      "properties": {
        "accountReference": {
          "type": "string",
          "description": "Unique reference code for the account."
        },
        "accountFiscId": {
          "type": "string",
          "description": "The account identifier"
        },
        "receiptId": {
          "type": "string",
          "description": "The unique identifier for the receipt associated with this account."
        },
        "source": {
          "properties": {
            "initialAccountId": {
              "type": "string",
              "description": "The `accountFiscId` of the initial transaction associated with the current account, if applicable. For example, in the case of a refund.\n\nThis will match the `accountFiscId` of the sale if there is no associated account."
            },
            "previousAccountId": {
              "type": "string",
              "description": "The `accountFiscId` of the previous transaction associated with the current account, if applicable. For example, in the case of a refund.\n\nThis may be different from `initialAccountId` if there is more than one associated account.\n\nIt will not be displayed if there is no associated account."
            }
          },
          "type": "object"
        },
        "salesLines": {
          "items": {
            "properties": {
              "id": {
                "type": "string",
                "description": "The sale line identifier"
              },
              "parentLineId": {
                "type": "string",
                "description": "The sale line this item is associated with, if applicable."
              },
              "totalNetAmountWithTax": {
                "type": "string",
                "description": "Total amount of sale line, including tax. **Important Note:** This field is for use with tax inclusive businesses.\nFor tax exclusive businesses, see `taxAmount` and `taxLines` for tax calculations."
              },
              "totalNetAmountWithoutTax": {
                "type": "string",
                "description": "Total amount of the sale line, before tax."
              },
              "menuListPrice": {
                "type": "string",
                "description": "The price listed on the menu."
              },
              "unitCostPrice": {
                "type": "string",
                "description": "The unit cost price."
              },
              "serviceCharge": {
                "type": "string",
                "description": "The service charge amount."
              },
              "serviceChargeType": {
                "$ref": "#/$defs/financial-apiServiceChargeType"
              },
              "serviceChargeRate": {
                "type": "string",
                "description": "The service charge rate, as a percentage."
              },
              "discountAmount": {
                "type": "string",
                "description": "The discount amount."
              },
              "taxCode": {
                "type": "string",
                "description": "The system code for the tax rate."
              },
              "taxAmount": {
                "type": "string",
                "description": "The tax total."
              },
              "taxRatePercentage": {
                "type": "string",
                "description": "The tax rate, as a percentage."
              },
              "taxLines": {
                "items": {
                  "properties": {
                    "taxId": {
                      "type": "string",
                      "description": "The unique identifier for the tax."
                    },
                    "taxCode": {
                      "type": "string",
                      "description": "The system code for the tax rate."
                    },
                    "taxRate": {
                      "type": "string",
                      "description": "The tax rate, as a multiplier."
                    },
                    "taxAmount": {
                      "type": "string",
                      "description": "The tax total."
                    },
                    "taxIncluded": {
                      "type": "boolean",
                      "description": "Whether or not the business is tax inclusive."
                    }
                  }
                }
              },
              "discountType": {
                "type": "string",
                "description": "The type of discount."
              },
              "discountCode": {
                "type": "string",
                "description": "The discount code."
              },
              "discountName": {
                "type": "string",
                "description": "The name of the discount."
              },
              "accountDiscountAmount": {
                "type": "string",
                "description": "The account discount amount."
              },
              "accountDiscountType": {
                "type": "string",
                "description": "The account discount type (if any)."
              },
              "accountDiscountCode": {
                "type": "string",
                "description": "The account discount code (if any)."
              },
              "accountDiscountName": {
                "type": "string",
                "description": "The account discount name (if any)."
              },
              "totalDiscountAmount": {
                "type": "string",
                "description": "The total discount amount."
              },
              "sku": {
                "type": "string",
                "description": "The item SKU"
              },
              "name": {
                "type": "string",
                "description": "The item name."
              },
              "nameOverride": {
                "type": "string",
                "description": "Item name entered manually by the POS user upon item selection."
              },
              "statisticGroup": {
                "type": "string",
                "description": "The item's statistic group."
              },
              "quantity": {
                "type": "string",
                "description": "The item quantity."
              },
              "accountingGroup": {
                "properties": {
                  "accountingGroupId": {
                    "type": "number",
                    "description": "The unique identifier for the item's accounting group."
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the accounting group."
                  },
                  "statisticGroup": {
                    "type": "string",
                    "description": "The accounting group's statistic group."
                  },
                  "code": {
                    "type": "string",
                    "description": "The code assigned to the accounting group."
                  }
                },
                "type": "object"
              },
              "currency": {
                "type": "string",
                "description": "The currency for the sale line."
              },
              "tags": {
                "items": {
                  "type": "string"
                },
                "type": "array",
                "description": "The tags attached to the line item."
              },
              "revenueCenter": {
                "type": "string",
                "description": "The name of the revenue center where the sale line was created."
              },
              "revenueCenterId": {
                "type": "number",
                "description": "The unique identifier for the revenue center where the sale line was created."
              },
              "categories": {
                "items": {
                  "properties": {
                    "category": {
                      "type": "string",
                      "description": "The line item's category."
                    },
                    "value": {
                      "type": "string",
                      "description": "The category value."
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              },
              "timeofSale": {
                "type": "string",
                "description": "The timestamp of when the line item was created."
              },
              "staffId": {
                "type": "number",
                "description": "The unique identifier for the user who created the line item."
              },
              "staffName": {
                "type": "string",
                "description": "The name of the user who created the line item."
              },
              "deviceId": {
                "type": "number",
                "description": "The unique identifier for the device where the sale line was created."
              },
              "deviceName": {
                "type": "string",
                "description": "The name of the device where the sale line was created."
              },
              "voidReason": {
                "type": "string",
                "enum": [
                  "Broken",
                  "Cooking",
                  "Other",
                  "Taste",
                  "Unhappy Client",
                  "User Mistake",
                  "Waited too long"
                ],
                "description": "The void reason, if applicable."
              },
              "accountProfileCode": {
                "type": "string",
                "description": "The code of the account profile used."
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "payments": {
          "items": {
            "properties": {
              "code": {
                "type": "string",
                "description": "The code of the payment method."
              },
              "description": {
                "type": "string",
                "description": "The name of the payment method."
              },
              "paymentMethodId": {
                "type": "number",
                "description": "The unique identifier for the payment method."
              },
              "netAmountWithTax": {
                "type": "string",
                "description": "The net payment amount, including tax."
              },
              "currency": {
                "type": "string",
                "description": "The payment currency."
              },
              "tip": {
                "type": "string",
                "description": "The tip amount."
              },
              "consumer": {
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The UUID of the customer associated with the payment, if applicable."
                  },
                  "customerId": {
                    "type": "number",
                    "description": "The unique identifier for the customer."
                  },
                  "title": {
                    "description": "The title of the customer.",
                    "type": "string"
                  },
                  "firstName": {
                    "description": "The first name of the customer.",
                    "type": "string"
                  },
                  "lastName": {
                    "description": "The last name of the customer.",
                    "type": "string"
                  },
                  "phoneNumber1": {
                    "description": "The primary phone number of the customer.",
                    "type": "string"
                  },
                  "phoneNumber2": {
                    "description": "The secondary phone number of the customer.",
                    "type": "string"
                  },
                  "companyName": {
                    "description": "The company name of the customer.",
                    "type": "string"
                  },
                  "addressLine1": {
                    "description": "The first line of the customer's address.",
                    "type": "string"
                  },
                  "addressLine2": {
                    "description": "The second line of the customer's address.",
                    "type": "string"
                  },
                  "zipCode": {
                    "description": "The postal code of the customer's address.",
                    "type": "string"
                  },
                  "city": {
                    "description": "The city of the customer's address.",
                    "type": "string"
                  },
                  "state": {
                    "description": "The state of the customer's address.",
                    "type": "string"
                  },
                  "email": {
                    "description": "The email address of the customer.",
                    "type": "string"
                  },
                  "taxIdentifier": {
                    "description": "The tax identifier of the customer.",
                    "type": "string"
                  },
                  "fiscalCode": {
                    "description": "The fiscal code of the customer.",
                    "type": "string"
                  },
                  "destinationCode": {
                    "description": "The destination code of the customer.",
                    "type": "string"
                  }
                },
                "type": "object"
              },
              "type": {
                "description": "The type of payment.",
                "enum": [
                  "NORMAL",
                  "ACCOUNTS_RECEIVABLE"
                ],
                "type": "string"
              },
              "deviceId": {
                "type": "string",
                "description": "The unique identifier for the device where the payment was processed."
              },
              "deviceName": {
                "type": "string",
                "description": "The name of the device where the payment was processed."
              },
              "staffId": {
                "type": "number",
                "description": "The unique identifier for the user who processed the payment."
              },
              "staffName": {
                "type": "string",
                "description": "The name of the user who processed the payment."
              },
              "authorization": {
                "type": "string",
                "description": "The authorization code for the payment."
              },
              "externalReference": {
                "type": "string",
                "description": "The external reference code for the payment."
              },
              "revenueCenter": {
                "type": "string",
                "description": "The name of the revenue center where the payment was processed."
              },
              "revenueCenterId": {
                "type": "number",
                "description": "The unique identifier for the revenue center where the payment was processed."
              },
              "fiscId": {
                "type": "string",
                "description": "The unique identifier for the payment."
              },
              "uuid": {
                "type": "string",
                "description": "The base64url encoded UUID of the payment."
              },
              "fiscDate": {
                "type": "string",
                "description": "The time stamp of the payment."
              },
              "surcharge": {
                "type": "string",
                "description": "The surcharge amount."
              }
            },
            "type": "object"
          },
          "type": "array"
        },
        "timeofOpening": {
          "type": "string",
          "description": "The account creation timestamp."
        },
        "timeofCloseAndPaid": {
          "type": "string",
          "description": "The account close timestamp."
        },
        "cancelled": {
          "type": "boolean"
        },
        "externalFiscalNumber": {
          "type": "string"
        },
        "tableNumber": {
          "type": "string",
          "description": "The table number."
        },
        "tableName": {
          "type": "string",
          "description": "The name of the table."
        },
        "accountProfileCode": {
          "type": "string",
          "description": "The account profile associated with the account."
        },
        "ownerName": {
          "type": "string",
          "description": "The name of the user associated with the account."
        },
        "ownerId": {
          "type": "number",
          "description": "The unique identifier for the user associated with the account."
        },
        "type": {
          "enum": [
            "SALE",
            "VOID",
            "RECALL",
            "REFUND",
            "SPLIT",
            "UPDATE",
            "TRANSFER",
            "FLOAT",
            "TRANSITORY",
            "CROSS_BL",
            "CANCEL"
          ],
          "type": "string",
          "description": "The sale type."
        },
        "externalReferences": {
          "items": {
            "type": "string",
            "description": "List of external references for online orders. Includes the TASK prefix, `businessLocationId`, and the unique reference code provided in the [`thirdPartyReference`](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-thirdpartyreference) field of an online order."
          },
          "type": "array"
        },
        "nbCovers": {
          "type": "number",
          "description": "The number of covers."
        },
        "dineIn": {
          "type": "boolean",
          "description": "Whether the order is dine-in."
        },
        "deviceId": {
          "description": "The unique identifier for the device where the account was created.",
          "type": "number"
        },
        "deviceName": {
          "description": "The name of the device where the account was created.",
          "type": "string"
        },
        "voidReason": {
          "type": "string",
          "enum": [
            "Broken",
            "Cooking",
            "Other",
            "Taste",
            "Unhappy Client",
            "User Mistake",
            "Waited too long"
          ],
          "description": "The void reason, if applicable."
        }
      },
      "type": "object"
    },
    "financial-apiServiceChargeType": {
      "type": "string",
      "description": "The type of service charge applied to the sale line.",
      "enum": [
        "UNTAXED",
        "APPORTIONED",
        "NO_SERVICE_CHARGE"
      ]
    }
  }
}