openapi: 3.1.0
info:
version: 1.0.0
title: Lightspeed Restaurant K Series Account Order and Pay 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: Order and Pay
paths:
/o/op/data/businesses:
get:
summary: Lightspeed Get Businesses
operationId: apeLookupBusinesses
description: Returns a list of all businesses and business locations associated with the access token.
tags:
- Order and Pay
responses:
'200':
description: Businesses
content:
application/json:
schema:
items:
properties:
name:
example: My Awesome Business
description: The business name.
type: string
id:
example: 454335871
description: The unique identifier for the business.
type: integer
format: int64
businessLocations:
description: The business locations within this business.
items:
properties:
id:
$ref: '#/components/schemas/apeBusinessLocationId'
name:
example: My Awesome Business - Location 1
description: The business location name.
type: string
type: object
type: array
type: object
type: array
examples:
ApeLookupBusinesses200Example:
summary: Default apeLookupBusinesses 200 response
x-microcks-default: true
value:
- name: My Awesome Business
id: 454335871
businessLocations:
- id: 45454565682155
name: My Awesome Business - Location 1
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/data/{businessLocationId}/floorplans:
get:
summary: Lightspeed Get All Floorplans
operationId: apeLookupFloorPlans
description: Returns the floorplans for a specific business location.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: path
required: true
- name: expandTables
in: query
required: false
description: 'If true, the response will include the table details for each floorplan.
If false, the response will only include the [`name`](https://api-docs.lsk.lightspeed.app/operation/operation-apelookupfloorplans#operation-apelookupfloorplans-200-body-application-json-name) and [`id`](https://api-docs.lsk.lightspeed.app/operation/operation-apelookupfloorplans#operation-apelookupfloorplans-200-body-application-json-id) for the floorplans.'
schema:
type: boolean
default: true
responses:
'200':
description: Floorplans
content:
application/json:
schema:
items:
properties:
id:
example: 141948669132976
description: The unique identifier for the floorplan.
format: int64
type: integer
name:
description: The name of the floorplan.
example: Terrace
type: string
tables:
items:
$ref: '#/components/schemas/apeTable'
type: array
type: object
type: array
examples:
ApeLookupFloorPlans200Example:
summary: Default apeLookupFloorPlans 200 response
x-microcks-default: true
value:
- id: 141948669132976
name: Terrace
tables:
- number: 1
reference: abcdefg123456
id: '141948669132977'
active: true
description: Table 1
defaultClientCount: 4
'404':
description: 'Not Found
Indicates that the business location has no floorplans configured.'
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/data/{businessLocationId}/floorplans/{floorPlanId}/tables:
get:
summary: Lightspeed Get Floorplan Tables
operationId: apeGetTables
description: Returns the tables for a specific floorplan of a business location
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: path
required: true
- schema:
$ref: '#/components/schemas/apeFloorPlanId'
name: floorPlanId
in: path
required: true
responses:
'200':
description: Tables
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/apeTable'
examples:
ApeGetTables200Example:
summary: Default apeGetTables 200 response
x-microcks-default: true
value:
- number: 1
reference: abcdefg123456
id: '141948669132977'
active: true
description: Table 1
defaultClientCount: 4
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/data/account-profiles:
get:
summary: Lightspeed Get All Order Profiles
operationId: apeAccountProfiles
description: 'Returns a list of active [order profiles](https://k-series-support.lightspeedhq.com/hc/en-us/articles/1260804657389-About-order-profiles) for a specific business location.
The order profile [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code) can be used to retrieve a specific price list when [loading a menu](https://api-docs.lsk.lightspeed.app/operation/operation-apegetmenubyid).
Note: Order Profiles were previously called Account Profiles, and may still be referred to in this way in the API, in some cases.'
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: Order profiles
content:
application/json:
schema:
$ref: '#/components/schemas/apeAccountProfiles'
examples:
ApeAccountProfiles200Example:
summary: Default apeAccountProfiles 200 response
x-microcks-default: true
value:
businessLocationId: 45454565682155
accountProfileList:
- id: 12454575601144
code: takeaway
name: Takeaway
deliveryMode: TAKE_AWAY
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/data/{businessLocationId}/account-profiles/tagcode/{tagCode}:
get:
summary: Lightspeed Get Single Order Profile
operationId: apeGetAccountProfile
description: 'Returns details of an active [order profile](https://k-series-support.lightspeedhq.com/hc/en-us/articles/1260804657389-About-order-profiles) based on its [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code).
Note: Order Profiles were previously called Account Profiles, and may still be referred to in this way in the API, in some cases.'
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: path
required: true
- schema:
$ref: '#/components/schemas/apeTagCode'
name: tagCode
in: path
required: true
responses:
'200':
description: Order profile
content:
application/json:
schema:
$ref: '#/components/schemas/apeAccountProfile'
examples:
ApeGetAccountProfile200Example:
summary: Default apeGetAccountProfile 200 response
x-microcks-default: true
value:
id: 12454575601144
code: takeaway
name: Takeaway
deliveryMode: TAKE_AWAY
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/menu/list:
get:
summary: Lightspeed Get All Menus
operationId: apeLoadMenus
description: Returns a list of menus for a given business location.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: Load menus
content:
application/json:
schema:
items:
properties:
menuName:
description: The name of the menu.
example: Lunch Menu
type: string
ikentooMenuId:
type: integer
description: The unique identifier for the menu.
example: 141948669132851
format: int64
type: object
type: array
examples:
ApeLoadMenus200Example:
summary: Default apeLoadMenus 200 response
x-microcks-default: true
value:
- menuName: Lunch Menu
ikentooMenuId: 141948669132851
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/menu/load/{menuId}:
get:
summary: Lightspeed Get Single Menu
operationId: apeGetMenuById
deprecated: true
description: '**Deprecated:** Use [/o/op/2/menu/load/{menuId}](#/Order%20and%20Pay/getMenuByIdV2) instead. V2 includes product modifier groups and product modifiers on menu items and deal items. Returns details of a particular menu based on its unique identifier and other query parameters.'
tags:
- Order and Pay
parameters:
- name: menuId
in: path
required: true
description: The unique identifier for the menu.
schema:
type: integer
description: The unique identifier for the menu.
example: 141948669132851
format: int64
- name: businessLocationId
in: query
required: true
schema:
$ref: '#/components/schemas/apeBusinessLocationId'
- name: accountProfile
in: query
required: false
schema:
type: string
description: The order profile [`code`](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code). Item prices returned will be those associated with this order profile, when applicable. See the [order profiles](https://api-portal.lsk.lightspeed.app/guides/definitions/order-profiles) definition for more details.
example: TAKEAWAY
default: ''
- name: richContent
in: query
required: false
schema:
type: boolean
description: Query parameter to include rich content of menu items.
example: true
default: false
responses:
'200':
description: Successful retrieval of menu details.
content:
application/json:
schema:
$ref: '#/components/schemas/apeMenu'
examples:
ApeGetMenuById200Example:
summary: Default apeGetMenuById 200 response
x-microcks-default: true
value:
menuName: Main Menu
menuEntryGroups:
- '@type': group
id: '141948669133028'
name: Mains
color: blue
menuEntry: []
richDataMissing: false
ikentooMenuId: 141948669132851
conditionalTaxRules: false
'503':
description: Service Unavailable
content:
'*/*':
schema:
properties:
status:
enum:
- '503'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/2/menu/load/{menuId}:
get:
summary: Lightspeed Get Single Menu V2
operationId: apeGetMenuByIdV2
description: 'Returns details of a particular menu based on its unique identifier and other query parameters. Product modifier groups and product modifiers are always included in the response.
**Migration from V1:** The response includes `menuModifierGroups` on each menu item and deal item, containing product modifier details (name, price, extraPrice, sku, rich data). Items with product modifier groups are no longer marked as `asSubItem`.'
tags:
- Order and Pay
parameters:
- name: menuId
in: path
required: true
description: The unique identifier for the menu.
schema:
type: integer
description: The unique identifier for the menu.
example: 141948669132851
format: int64
- name: businessLocationId
in: query
required: true
schema:
$ref: '#/components/schemas/apeBusinessLocationId'
- name: accountProfile
in: query
required: false
schema:
type: string
description: The order profile [`code`](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code). Item prices returned will be those associated with this order profile, when applicable. See the [order profiles](https://api-portal.lsk.lightspeed.app/guides/definitions/order-profiles) definition for more details.
example: TAKEAWAY
default: ''
- name: richContent
in: query
required: false
schema:
type: boolean
description: Query parameter to include rich content of menu items.
example: true
default: false
responses:
'200':
description: Successful retrieval of menu details including product modifiers.
content:
application/json:
schema:
$ref: '#/components/schemas/apeMenuV2'
examples:
ApeGetMenuByIdV2200Example:
summary: Default apeGetMenuByIdV2 200 response
x-microcks-default: true
value:
menuName: Main Menu
menuEntryGroups:
- '@type': group
id: '141948669133028'
name: Mains
color: blue
menuEntry: []
richDataMissing: false
ikentooMenuId: 141948669132851
conditionalTaxRules: false
'503':
description: Service Unavailable
content:
'*/*':
schema:
properties:
status:
enum:
- '503'
type: string
timestamp:
type: string
format: date-time
message:
type: string
apiSubExceptions:
items:
properties:
field:
type: string
rejectedValue:
type: string
message:
type: string
type: object
type: array
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/menu/modifiers:
get:
summary: Lightspeed Get Modifiers
operationId: apeLoadAllModifiers
description: Returns a list of production instructions for a specific business location.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: Load modifiers
content:
application/json:
schema:
items:
$ref: '#/components/schemas/apeProductionInstruction'
type: array
examples:
- - multiSelectionPermitted: false
productionInstructionGroupName: Meat cooking
productionIntructionGroupId: 236025632784487
productionInstructionList:
- instruction: Bleu
ikentooModifierId: 236025632784488
- instruction: Rare
ikentooModifierId: 236025632784490
- instruction: Medium Rare
ikentooModifierId: 236025632784492
- instruction: Medium
ikentooModifierId: 236025632784494
- instruction: Medium well
ikentooModifierId: 236025632784496
- instruction: Well done
ikentooModifierId: 236025632784498
- multiSelectionPermitted: false
productionInstructionGroupName: Fish cooking
productionIntructionGroupId: 236025632784501
productionInstructionList:
- instruction: Seared
ikentooModifierId: 236025632784502
- instruction: Medium
ikentooModifierId: 236025632784504
- instruction: Well done
ikentooModifierId: 236025632784506
- multiSelectionPermitted: false
productionInstructionGroupName: Egg cooking
productionIntructionGroupId: 236025632784509
productionInstructionList:
- instruction: Sunny Side
ikentooModifierId: 236025632784510
- instruction: Over Easy
ikentooModifierId: 236025632784512
- instruction: Hard
ikentooModifierId: 236025632784514
- instruction: Scrambled
ikentooModifierId: 236025632784516
- multiSelectionPermitted: false
productionInstructionGroupName: Garnish
productionIntructionGroupId: 236025632784519
productionInstructionList:
- instruction: Fries
ikentooModifierId: 236025632784520
- instruction: Pasta
ikentooModifierId: 236025632784522
- instruction: Rice
ikentooModifierId: 236025632784524
- instruction: Vegetables
ikentooModifierId: 236025632784526
- instruction: Salad
ikentooModifierId: 236025632784528
- multiSelectionPermitted: false
productionInstructionGroupName: Flavors
productionIntructionGroupId: 236025632784531
productionInstructionList:
- instruction: Vanilla
ikentooModifierId: 236025632784532
- instruction: Strawberry
ikentooModifierId: 236025632784534
- instruction: Chocolate
ikentooModifierId: 236025632784536
- instruction: Coffee
ikentooModifierId: 236025632784538
- instruction: Caramel
ikentooModifierId: 236025632784540
examples:
ApeLoadAllModifiers200Example:
summary: Default apeLoadAllModifiers 200 response
x-microcks-default: true
value:
- multiSelectionPermitted: true
productionInstructionGroupName: Sample productionInstructionGroupName
productionIntructionGroupId: 760
productionInstructionList:
- {}
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/menu/discounts:
get:
summary: Lightspeed Get Discounts
operationId: apeLoadAllDiscounts
description: Returns a list of discounts for a specific business location.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: Load discounts
content:
application/json:
schema:
items:
$ref: '#/components/schemas/apeDiscount'
type: array
examples:
- - name: Free
code: FREE
discountPercentage: 100.0
- name: Ten Euros Off
code: TEN_OFF
discountAmount: 10.0
examples:
ApeLoadAllDiscounts200Example:
summary: Default apeLoadAllDiscounts 200 response
x-microcks-default: true
value:
- name: Staff Discount
code: STAFF
discountPercentage: 15
discountAmount: 5
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/local:
post:
summary: Lightspeed Create Local Order
description: 'Creates a new dine-in order for a specific business location. See [Online Ordering Basics](https://api-portal.lsk.lightspeed.app/guides/tutorials/online-ordering-basics) for more details.
If the [accountIdentifier](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-accountidentifier) of an existing order is provided in the body of the request, the request will update the existing order.'
operationId: apeLocalOrder
requestBody:
content:
application/json:
schema:
required:
- businessLocationId
- thirdPartyReference
- endpointId
- customerInfo
properties:
businessLocationId:
$ref: '#/components/schemas/apeBusinessLocationId'
thirdPartyReference:
description: The external reference provided for this order. Must be unique. This value will be included in the order details sent to the [webhook URL](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo#operation-apecreatewebhookoo-body-application-json-url).
type: string
minLength: 1
maxLength: 48
examples:
- MyAwesomeThirdPartyReference
endpointId:
description: Endpoint ID for a unique webhook that has been created using [the webhook endpoint](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo).
type: string
examples:
- MY-AWESOME-ENDPOINT-ID
customerInfo:
$ref: '#/components/schemas/apeCustomerInfo'
orderNote:
description: A note added to this order and displayed on the printed dockets.
type: string
examples:
- Sample Order Note
maxTimeToAttemptOrderDeliverToPos:
description: '** Use of this feature is strongly recommended **
Maximum time to attempt delivery of this order to the POS. In milliseconds. The minimum value is 60000ms (1 minute).
If [`scheduledTimeForOrderAsIso8601`](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-scheduledtimefororderasiso8601) is used, this value will be added to the scheduled order time.'
type: integer
format: int32
examples:
- 60000
staffId:
description: The unique identifier for the staff member.
type: integer
format: int64
examples:
- 1234567890
accountProfileCode:
description: A valid order profile [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code) to associate with this order. See the [order profiles](https://api-portal.lsk.lightspeed.app/guides/definitions/order-profiles) definition for more details.
type: string
examples:
- LOCALORDER
scheduledTimeForOrderAsIso8601:
description: The time that the order will be sent to the POS. Must be in the future.
type: string
format: date-time
examples:
- '2024-04-04T09:42:00.000+00:00'
payment:
$ref: '#/components/schemas/apeOrderPayment'
accountId:
description: The system-generated account identifier for this order (Applies to iKentoo V2). If this is specified, the associated order will be updated.
deprecated: true
type: string
examples:
- '1234567890'
accountIdentifier:
description: The system-generated account identifier for this order (Applies to iKentoo V3+). If this is specified, the associated order will be updated.
type: string
examples:
- A1235.89
tableNumber:
description: The table number for this local order. If updating an existing order, (ie.`accountIdentifier` is specified), the `tableNumber` cannot be updated.
type: string
examples:
- '1'
clientCount:
description: The number of customers for this order. If updating an existing order, (ie.`accountIdentifier` is specified), the `clientCount` cannot be updated.
type: integer
format: int32
examples:
- 4
items:
description: The items in this order.
items:
$ref: '#/components/schemas/apeLocalOrderItemLine'
type: array
targetPrinterProfileId:
description: The printer profile id to use for printing the receipt for this payment. If not provided, the default active printer profile for the business location will be used.
type: integer
format: int64
examples:
- 1773881235
type: object
examples:
ApeLocalOrderRequestExample:
summary: Default apeLocalOrder request
x-microcks-default: true
value:
businessLocationId: 45454565682155
thirdPartyReference: example
endpointId: '500123'
customerInfo:
firstName: Jane
lastName: Doe
thirdPartyReference: ZEN-7074522d-c71d-403f
email: jane.doe@example.com
contactNumberAsE164: '+14155552671'
notes: Notes about the customer.
salutation: Mr.
sendEmailReceipts: true
emailNotification: DONT_CHANGE
orderNote: example
maxTimeToAttemptOrderDeliverToPos: 510
staffId: 131
accountProfileCode: example
scheduledTimeForOrderAsIso8601: '2026-03-15T14:30:00Z'
payment:
paymentMethod: OOPAYMENT
paymentAmount: 14.0
tipAmount: 2.0
accountId: '500123'
accountIdentifier: '500123'
tableNumber: example
clientCount: 776
items:
- quantity: 1
sku: UGG-BB-PUR-06
customItemName: My Custom Item Name
customItemPrice: 10.0
discountAmountOverride: 5.0
discountPercentOverride: 10.0
modifiers:
- {}
discountCode: FIVEPERCENT
course: 2
subItems:
- {}
targetPrinterProfileId: 670
required: true
tags:
- Order and Pay
responses:
'200':
description: accepted
content:
application/json:
schema:
properties:
status:
description: The response.
type: string
examples:
- ok
type: object
examples:
ApeLocalOrder200Example:
summary: Default apeLocalOrder 200 response
x-microcks-default: true
value:
status: OPEN
'400':
description: Bad Request.
content:
application/json:
schema:
type: object
description: Response object for error code 400
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T19:15:05.043+0000
status:
type: integer
description: The HTTP status code of the error response.
examples:
- 400
error:
type: string
description: A brief title of the error status.
examples:
- Bad Request
message:
type: string
description: A message describing the nature of the error in detail.
examples:
- 'Validation failed for object=''localOrder''. Error count: 1'
errors:
type: array
description: An array of error details, outlining specific issues with the request.
items:
type: object
properties:
codes:
type: array
items:
type: string
description: A set of code strings that correspond to the validation error.
example: &id001
- NotNull.localOrder.thirdPartyReference
- NotNull.thirdPartyReference
- NotNull.java.lang.String
- NotNull
arguments:
type: array
items:
type: object
properties:
codes:
type: array
items:
type: string
description: Argument codes that are related to the field in validation.
example: &id002
- localOrder.thirdPartyReference
- thirdPartyReference
defaultMessage:
type: string
description: The default message associated with the failed validation.
example: thirdPartyReference
code:
type: string
description: A single code that represents the specific validation rule that was not satisfied.
example: thirdPartyReference
defaultMessage:
type: string
description: The default error message provided when the associated field fails validation.
example: must not be null
objectName:
type: string
description: The name of the object that failed validation.
example: localOrder
field:
type: string
description: The name of the field that failed validation.
example: thirdPartyReference
bindingFailure:
type: boolean
description: Indicates whether the error was a result of a binding failure.
example: false
code:
type: string
description: A code representing the specific type of validation error.
example: NotNull
path:
type: string
description: The path of the failed request.
examples:
- /o/op/1/order/local
examples:
ApeLocalOrder400Example:
summary: Default apeLocalOrder 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 764
error: example
message: example
errors:
- codes: *id001
arguments:
- codes: *id002
defaultMessage: thirdPartyReference
code: thirdPartyReference
defaultMessage: must not be null
objectName: localOrder
field: thirdPartyReference
bindingFailure: false
code: NotNull
path: example
'409':
description: Conflict
content:
'*/*':
schema:
properties:
status:
description: The request status.
type: string
examples:
- fail
msg:
description: A message describing the error.
type: string
examples:
- reference has already been used 123456789
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/toGo:
post:
summary: Lightspeed Create to Go Order
operationId: apePlaceToGoOrder
description: Creates a new takeaway or delivery order for a specific business location. See [Online Ordering Basics](https://api-portal.lsk.lightspeed.app/guides/tutorials/online-ordering-basics) for more details.
requestBody:
content:
application/json:
schema:
required:
- businessLocationId
- thirdPartyReference
- endpointId
- customerInfo
properties:
businessLocationId:
$ref: '#/components/schemas/apeBusinessLocationId'
thirdPartyReference:
description: The external reference provided for this order. Must be unique. This value will be included in the order details sent to the [webhook URL](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo#operation-apecreatewebhookoo-body-application-json-url).
type: string
minLength: 1
maxLength: 48
examples:
- MyAwesomeThirdPartyReference
endpointId:
description: Endpoint id for a unique webhook that has been created using [the webhook endpoint](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo).
type: string
examples:
- MY-AWESOME-ENDPOINT-ID
customerInfo:
$ref: '#/components/schemas/apeCustomerInfo'
orderNote:
description: A note added to this order and displayed on the printed dockets.
type: string
examples:
- Sample Order Note
maxTimeToAttemptOrderDeliverToPos:
description: '** Use of this feature is strongly recommended **
Maximum time to attempt delivery of this order to the POS. In milliseconds. The minimum value is 60000ms (1 minute).
If [`scheduledTimeForOrderAsIso8601`](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-scheduledtimefororderasiso8601) is used, this value will be added to the scheduled order time.'
type: integer
format: int32
examples:
- 60000
staffId:
description: The unique identifier for the staff member.
type: integer
format: int64
examples:
- 1234567890
accountProfileCode:
description: A valid order profile [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code) to associate with this order. See the [order profiles](https://api-portal.lsk.lightspeed.app/guides/definitions/order-profiles) definition for more details.
type: string
examples:
- TOGOORDER
scheduledTimeForOrderAsIso8601:
description: The time that the order will be sent to the POS. Must be in the future.
type: string
format: date-time
examples:
- '2024-04-04T09:42:00.000+00:00'
payment:
$ref: '#/components/schemas/apeOrderPayment'
collectionCode:
maxLength: 8
description: Unique collection code for this order. If left blank, one will be automatically generated.
type: string
examples:
- '12345'
orderCollectionTimeAsIso8601:
description: The expected collection time of the order. Must be in the future.
type: string
format: date-time
examples:
- '2024-04-04T09:42:00.000+00:00'
items:
type: array
items:
$ref: '#/components/schemas/apeToGoOrderItemLine'
deliveryAddress:
type: object
description: The address to which the order should be delivered.
properties:
addressLine1:
type: string
description: The first line of the street address.
addressLine2:
type: string
description: The second line of the street address (if applicable).
zip:
type: string
description: The postal code for the delivery address.
city:
type: string
description: The city in which the delivery address is located.
targetPrinterProfileId:
description: The printer profile id to use for printing the receipt for this payment. If not provided, the default active printer profile for the business location will be used.
type: integer
format: int64
examples:
- 1773881235
type: object
examples:
ApePlaceToGoOrderRequestExample:
summary: Default apePlaceToGoOrder request
x-microcks-default: true
value:
businessLocationId: 45454565682155
thirdPartyReference: example
endpointId: '500123'
customerInfo:
firstName: Jane
lastName: Doe
thirdPartyReference: ZEN-7074522d-c71d-403f
email: jane.doe@example.com
contactNumberAsE164: '+14155552671'
notes: Notes about the customer.
salutation: Mr.
sendEmailReceipts: true
emailNotification: DONT_CHANGE
orderNote: example
maxTimeToAttemptOrderDeliverToPos: 449
staffId: 370
accountProfileCode: example
scheduledTimeForOrderAsIso8601: '2026-03-15T14:30:00Z'
payment:
paymentMethod: OOPAYMENT
paymentAmount: 14.0
tipAmount: 2.0
collectionCode: example
orderCollectionTimeAsIso8601: '2026-03-15T14:30:00Z'
items:
- quantity: 1
sku: UGG-BB-PUR-06
customItemName: My Custom Item Name
customItemPrice: 10.0
discountAmountOverride: 5.0
discountPercentOverride: 10.0
modifiers:
- {}
discountCode: FIVEPERCENT
subItems:
- {}
deliveryAddress:
addressLine1: example
addressLine2: example
zip: example
city: example
targetPrinterProfileId: 258
required: true
tags:
- Order and Pay
responses:
'200':
description: accepted
content:
application/json:
schema:
properties:
status:
description: The response.
type: string
examples:
- ok
type: object
examples:
ApePlaceToGoOrder200Example:
summary: Default apePlaceToGoOrder 200 response
x-microcks-default: true
value:
status: OPEN
'400':
description: Bad Request.
content:
application/json:
schema:
type: object
description: Response object for error code 400
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T19:15:05.043+0000
status:
type: integer
description: The HTTP status code of the error response.
examples:
- 400
error:
type: string
description: A brief title of the error status.
examples:
- Bad Request
message:
type: string
description: A message describing the nature of the error in detail.
examples:
- 'Validation failed for object=''toGoOrder''. Error count: 1'
errors:
type: array
description: An array of error details, outlining specific issues with the request.
items:
type: object
properties:
codes:
type: array
items:
type: string
description: A set of code strings that correspond to the validation error.
example: &id003
- NotNull.toGoOrder.thirdPartyReference
- NotNull.thirdPartyReference
- NotNull.java.lang.String
- NotNull
arguments:
type: array
items:
type: object
properties:
codes:
type: array
items:
type: string
description: Argument codes that are related to the field in validation.
example: &id004
- toGoOrder.thirdPartyReference
- thirdPartyReference
defaultMessage:
type: string
description: The default message associated with the failed validation.
example: thirdPartyReference
code:
type: string
description: A single code that represents the specific validation rule that was not satisfied.
example: thirdPartyReference
defaultMessage:
type: string
description: The default error message provided when the associated field fails validation.
example: must not be null
objectName:
type: string
description: The name of the object that failed validation.
example: toGoOrder
field:
type: string
description: The name of the field that failed validation.
example: thirdPartyReference
bindingFailure:
type: boolean
description: Indicates whether the error was a result of a binding failure.
example: false
code:
type: string
description: A code representing the specific type of validation error.
example: NotNull
path:
type: string
description: The path of the failed request.
examples:
- /o/op/1/order/toGo
examples:
ApePlaceToGoOrder400Example:
summary: Default apePlaceToGoOrder 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 866
error: example
message: example
errors:
- codes: *id003
arguments:
- codes: *id004
defaultMessage: thirdPartyReference
code: thirdPartyReference
defaultMessage: must not be null
objectName: toGoOrder
field: thirdPartyReference
bindingFailure: false
code: NotNull
path: example
'409':
description: Conflict
content:
'*/*':
schema:
properties:
status:
description: The request status.
type: string
examples:
- fail
msg:
description: A message describing the error.
type: string
examples:
- reference has already been used 123456789
type: object
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/table/getCheck:
get:
summary: Lightspeed Get All Open Checks
operationId: apeGetCheck
description: Returns all open orders for the current day.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: All open orders for the current day.
content:
application/json:
schema:
items:
$ref: '#/components/schemas/apeAccountSnapshot'
type: array
examples:
ApeGetCheck200Example:
summary: Default apeGetCheck 200 response
x-microcks-default: true
value:
- clientCount: 4
identifier: '500123'
uuid: a3bb189e-8f29-4cce-b0e9-f29b123dfe3d
openDate: '2021-06-21T14:20:00Z'
closeDate: '2021-06-22T10:15:00Z'
paidAmount: 100.0
serviceCharge: 10.0
name: ORDER A1C2E
currentAmount: 110.0
staffName: Jane Smith
staffId: 7701234
salesEntries:
- {}
paymentEntries:
- {}
id: '500123'
ikaccountId: A78094.48
number: 255
tableNumber: 2
posId: 54321
deviceId: 186
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T22:18:49.101+0000
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 400
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Bad Request
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- Required request parameter 'businessLocationId' for method parameter type Long is not present
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/order/table/getCheck
examples:
ApeGetCheck400Example:
summary: Default apeGetCheck 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 47
error: example
message: example
path: example
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/table/{tableNumber}/getCheck:
get:
summary: Lightspeed Get Open Check by Table
operationId: apeCheckLookup
description: 'Returns an open order for a specific table.
Note: If more than one order is assigned to the table, the oldest order will be returned.'
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
- schema:
example: 1
description: The table [number](https://api-docs.lsk.lightspeed.app/operation/operation-apelookupfloorplans#operation-apelookupfloorplans-200-body-application-json-tables-number).
type: integer
format: int32
name: tableNumber
in: path
required: true
responses:
'200':
description: Check
content:
application/json:
schema:
$ref: '#/components/schemas/apeAccountSnapshot'
examples:
ApeCheckLookup200Example:
summary: Default apeCheckLookup 200 response
x-microcks-default: true
value:
clientCount: 4
identifier: '500123'
uuid: a3bb189e-8f29-4cce-b0e9-f29b123dfe3d
openDate: '2021-06-21T14:20:00Z'
closeDate: '2021-06-22T10:15:00Z'
paidAmount: 100.0
serviceCharge: 10.0
name: ORDER A1C2E
currentAmount: 110.0
staffName: Jane Smith
staffId: 7701234
salesEntries:
- id: 1341648999023061
uuid: 2c83b049-a2c1-4bc5-8479-eb152e5a54be
itemName: Burger
itemSku: '14'
unitAmount: 10.0
quantity: 1.0
modifiers: []
amountWithTax: 11.5
amountLessTax: 10.0
discountedAmount: 0.0
timeOfTransactionUtc: 2023-11-07T21:24:44.741+0000
active: true
parentId: 478
subLineItems:
- id: 1341648999023062
uuid: 2c83b049-a2c1-4bc5-8479-eb152e5a54be
itemName: Extra Cheese
itemSku: '35'
unitAmount: 1.0
quantity: 1.0
modifiers: []
amountWithTax: 1.15
amountLessTax: 1.0
discountedAmount: 0.0
grossUnitAmount: 1.0
timeOfTransactionUtc: 2023-11-07T21:24:44.755+0000
active: true
subLineItems: []
taxIncluded: false
isTaxIncluded: true
taxIncluded: false
paymentEntries:
- paymentMethodDescription: API Payment
externalReference: '12345678901234'
paymentMethodCode: APM
amountPaid: 12.65
paymentDate: 2023-11-07T22:05:16.127+0000
active: true
accountCancelled: true
id: '500123'
ikaccountId: A78094.48
number: 819
tableNumber: 2
posId: 54321
deviceId: 931
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T22:18:49.101+0000
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 404
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Not Found
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- account not found for BL 123456789
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/order/table/1/getCheck
examples:
ApeCheckLookup404Example:
summary: Default apeCheckLookup 404 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 498
error: example
message: example
path: example
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/order/accounts/{accountIdentifier}:
get:
summary: Lightspeed Get Single Check
operationId: apeCheckLookupWithaccountIdentifier
description: Returns a check based on the Account Identifier.
tags:
- Order and Pay
parameters:
- schema:
description: 'The ID of the account being requested.
(ex: A78094.69)'
example: A739800.52
type: string
name: accountIdentifier
in: path
required: true
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
responses:
'200':
description: The account requested.
content:
application/json:
schema:
$ref: '#/components/schemas/apeAccountSnapshot'
examples:
ApeCheckLookupWithaccountIdentifier200Example:
summary: Default apeCheckLookupWithaccountIdentifier 200 response
x-microcks-default: true
value:
clientCount: 4
identifier: '500123'
uuid: a3bb189e-8f29-4cce-b0e9-f29b123dfe3d
openDate: '2021-06-21T14:20:00Z'
closeDate: '2021-06-22T10:15:00Z'
paidAmount: 100.0
serviceCharge: 10.0
name: ORDER A1C2E
currentAmount: 110.0
staffName: Jane Smith
staffId: 7701234
salesEntries:
- id: 1341648999023061
uuid: 2c83b049-a2c1-4bc5-8479-eb152e5a54be
itemName: Burger
itemSku: '14'
unitAmount: 10.0
quantity: 1.0
modifiers: []
amountWithTax: 11.5
amountLessTax: 10.0
discountedAmount: 0.0
timeOfTransactionUtc: 2023-11-07T21:24:44.741+0000
active: true
parentId: 656
subLineItems:
- id: 1341648999023062
uuid: 2c83b049-a2c1-4bc5-8479-eb152e5a54be
itemName: Extra Cheese
itemSku: '35'
unitAmount: 1.0
quantity: 1.0
modifiers: []
amountWithTax: 1.15
amountLessTax: 1.0
discountedAmount: 0.0
grossUnitAmount: 1.0
timeOfTransactionUtc: 2023-11-07T21:24:44.755+0000
active: true
subLineItems: []
taxIncluded: false
isTaxIncluded: true
taxIncluded: false
paymentEntries:
- paymentMethodDescription: API Payment
externalReference: '12345678901234'
paymentMethodCode: APM
amountPaid: 12.65
paymentDate: 2023-11-07T22:05:16.127+0000
active: true
accountCancelled: false
id: '500123'
ikaccountId: A78094.48
number: 742
tableNumber: 2
posId: 54321
deviceId: 989
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T22:18:49.101+0000
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 400
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Bad Request
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- Invalid account identifier
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/order/accounts/-1
examples:
ApeCheckLookupWithaccountIdentifier400Example:
summary: Default apeCheckLookupWithaccountIdentifier 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 75
error: example
message: example
path: example
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- 2023-11-07T22:18:49.101+0000
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 404
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Not Found
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- account not found for BL 123456789
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/order/accounts/A78094.697/
examples:
ApeCheckLookupWithaccountIdentifier404Example:
summary: Default apeCheckLookupWithaccountIdentifier 404 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 463
error: example
message: example
path: example
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/pay:
post:
summary: Lightspeed Apply a Payment
operationId: apeMakePayment
description: Add a payment to an existing order.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/apeStandalonePayment'
examples:
ApeMakePaymentRequestExample:
summary: Default apeMakePayment request
x-microcks-default: true
value:
iKaccountId: 0
iKaccountIdentifier: A1234.56
thirdPartyPaymentReference: '12345678901234'
endpointId: MY-AWESOME-ENDPOINT-ID
businessLocationId: 45454565682155
taskTtlInMs: 60000
staffId: 118
deviceId: 12345678980
paymentMethod: OOPAYMENT
paymentAmount: 20.06
tipAmount: 2.5
targetPrinterProfileId: 1773881235
required: true
tags:
- Order and Pay
responses:
'200':
description: accepted
content:
application/json:
schema:
$ref: '#/components/schemas/apePaymentSubmissionResponse'
examples:
ApeMakePayment200Example:
summary: Default apeMakePayment 200 response
x-microcks-default: true
value:
status: ok
'400':
description: Bad Request
content:
'*/*':
schema:
$ref: '#/components/schemas/apePaymentBadRequestError'
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/printMsg:
post:
summary: Lightspeed Print Message
operationId: apePrintMsg
description: Send a message to the POS. Generates a notification on the register screen. Can also be sent to the printer.
If the POS is offline, the message will be stored for up to 24h and sent when the POS comes online.
tags:
- Order and Pay
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
requestBody:
content:
application/json:
schema:
properties:
message:
description: The message to be printed.
type: string
examples:
- The Print Message
alsoToPrinter:
description: Print on the receipt printer as well as till (highly recommended).
type: boolean
examples:
- true
type: object
required:
- message
examples:
ApePrintMsgRequestExample:
summary: Default apePrintMsg request
x-microcks-default: true
value:
message: example
alsoToPrinter: false
required: true
responses:
'200':
description: accepted
content:
application/json:
schema:
properties:
status:
description: The response.
type: string
examples:
- ok
type: object
examples:
ApePrintMsg200Example:
summary: Default apePrintMsg 200 response
x-microcks-default: true
value:
status: OPEN
security:
- OAuth2:
- orders-api
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/o/op/1/itemAvailability:
get:
summary: Lightspeed Get Item Availability Information
description: Returns item availability information, by business location and SKUs.
operationId: apeGetRestrictedItems
tags:
- Order and Pay
security:
- OAuth2:
- orders-api
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
- name: skus
in: query
description: List of SKUs to return.
required: true
schema:
type: array
items:
type: string
example: SKU1
maxItems: 50
minItems: 1
- name: page
in: query
description: Starting page of results, when paginating. Starts at 0.
required: false
schema:
minimum: 0
type: integer
format: int32
default: 0
example: 0
- name: size
in: query
description: Number of results to return, when paginating.
required: false
schema:
maximum: 50
minimum: 1
type: integer
format: int32
default: 25
example: 25
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/apeRestrictedItemPaginatedResponse'
examples:
ApeGetRestrictedItems200Example:
summary: Default apeGetRestrictedItems 200 response
x-microcks-default: true
value:
data:
- sku: SKU1
count: 50
updatedAt: '2025-07-08T14:20:00Z'
metadata:
warnings:
- {}
current: {}
total: 1
totalPages: 10
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- '2023-11-07T22:18:49.101Z'
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 400
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Bad Request
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- Required request parameter 'businessLocationId' for method parameter type Long is not present
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/itemAvailability
examples:
ApeGetRestrictedItems400Example:
summary: Default apeGetRestrictedItems 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 362
error: example
message: example
path: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: Lightspeed Get Item Availability Information by POST
description: Returns item availability information filtered by business location and SKUs. The list of SKUs must be provided in the request body.
operationId: apeGetRestrictedItemsByPost
tags:
- Order and Pay
security:
- OAuth2:
- orders-api
parameters:
- schema:
$ref: '#/components/schemas/apeBusinessLocationId'
name: businessLocationId
in: query
required: true
- name: page
in: query
description: Starting page of results, when paginating. Starts at 0.
required: false
schema:
minimum: 0
type: integer
format: int32
default: 0
example: 0
- name: size
in: query
description: Number of results to return, when paginating.
required: false
schema:
maximum: 100
minimum: 1
type: integer
format: int32
default: 25
example: 25
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/apeSkusRequest'
examples:
ApeGetRestrictedItemsByPostRequestExample:
summary: Default apeGetRestrictedItemsByPost request
x-microcks-default: true
value:
skus:
- SKU1
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/apeRestrictedItemPaginatedResponse'
examples:
ApeGetRestrictedItemsByPost200Example:
summary: Default apeGetRestrictedItemsByPost 200 response
x-microcks-default: true
value:
data:
- sku: SKU1
count: 50
updatedAt: '2025-07-08T14:20:00Z'
metadata:
warnings:
- {}
current: {}
total: 1
totalPages: 10
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
timestamp:
type: string
format: date-time
description: The date and time at which the error occurred.
examples:
- '2023-11-07T22:18:49.101Z'
status:
type: integer
description: The HTTP status code associated with the error.
examples:
- 400
error:
type: string
description: A short description of the HTTP status code meaning.
examples:
- Bad Request
message:
type: string
description: A human-readable message providing more details about the error.
examples:
- Required request parameter 'businessLocationId' for method parameter type Long is not present
path:
type: string
description: The request path where the error occurred.
examples:
- /o/op/1/itemAvailability
examples:
ApeGetRestrictedItemsByPost400Example:
summary: Default apeGetRestrictedItemsByPost 400 response
x-microcks-default: true
value:
timestamp: '2026-03-15T14:30:00Z'
status: 255
error: example
message: example
path: example
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
apeRestrictedItemPaginatedResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/apeRestrictedItem'
metadata:
$ref: '#/components/schemas/apePaginatedMetadata'
apeAccountSnapshot:
type: object
properties:
clientCount:
type: integer
format: int32
description: The number of guests at the table.
example: 4
identifier:
type: string
deprecated: true
uuid:
type: string
description: The account uuid.
example: a3bb189e-8f29-4cce-b0e9-f29b123dfe3d
openDate:
type: string
format: date-time
description: The date this account was opened in UTC.
example: '2021-06-21T14:20:00Z'
closeDate:
type: string
format: date-time
description: The date this account was closed in UTC.
example: '2021-06-22T10:15:00Z'
paidAmount:
type: number
description: The total of all payments on the check.
example: 100.0
serviceCharge:
type: number
description: The service charge applied to the check.
example: 10.0
name:
type: string
description: The check name.
example: ORDER A1C2E
currentAmount:
type: number
description: The current total amount on the check.
example: 110.0
staffName:
type: string
description: The name of the staff member assigned to the check.
example: Jane Smith
staffId:
type: integer
format: int64
description: The unique ID of the staff member assigned to the check.
example: 7701234
salesEntries:
type: array
description: Collection of check items.
items:
$ref: '#/components/schemas/apeAccountLineItem'
paymentEntries:
type: array
description: Collection of payment entries to the check.
items:
$ref: '#/components/schemas/apeAccountPaymentLine'
id:
type: string
deprecated: true
ikaccountId:
type: string
description: The system-generated account identifier for this check.(Applies to iKentoo V3+).
example: A78094.48
number:
type: integer
format: int32
deprecated: true
tableNumber:
type: integer
format: int32
description: The table number assigned to the check.
example: 2
posId:
type: integer
format: int64
description: The unique ID of the POS station that processed the check.
example: 54321
deviceId:
type: integer
format: int64
deprecated: true
apeItemModifier:
properties:
modifierId:
example: '236025632784492'
description: Modifier ID to be applied to this item.
type: string
type: object
apeTopLevelMenuGroupEntry:
allOf:
- type: object
properties:
'@type':
type: string
description: Indicates this is a menu group, which represents a menu screen in the POS.
example: group
enum:
- group
- type: object
properties:
id:
type: string
description: The menu group ID.
example: '141948669133028'
name:
type: string
description: The menu group name.
example: Mains
color:
type: string
description: The color of the button in the POS.
example: blue
menuEntry:
type: array
description: Array of menu entry objects.
items:
type: object
oneOf:
- $ref: '#/components/schemas/apeMenuItemEntry'
- $ref: '#/components/schemas/apeMenuDealEntry'
- $ref: '#/components/schemas/apeMenuGroupEntry'
discriminator:
propertyName: '@type'
mapping:
menuItem: '#/components/schemas/apeMenuItemEntry'
menuDeal: '#/components/schemas/apeMenuDealEntry'
group: '#/components/schemas/apeMenuGroupEntry'
apeMenuItemTax:
type: object
properties:
description:
type: string
description: Tax description as it appears on a POS and receipt.
example: 5% GST
amount:
type: number
description: The amount of Tax applied by default by this Tax, this can change dynamically at time of sale.
example: 12.55
percentage:
type: number
description: The percentage of Tax applied by default by this Tax, this can change dynamically at time of sale.
example: 5.0
apeCurrentInfo:
type: object
properties:
page:
type: integer
format: int32
description: Current page number.
example: 0
pageSize:
type: integer
format: int32
description: Number of items per page.
example: 50
apeCustomerInfo:
required:
- firstName
properties:
firstName:
example: Jane
description: Customer first name.
type: string
minLength: 1
maxLength: 128
lastName:
example: Doe
description: Customer last name.
type: string
thirdPartyReference:
example: ZEN-7074522d-c71d-403f
type: string
description: The unique reference for this customer which can help to identify them later on. If the email is left empty, this should be empty as well.
email:
example: jane.doe@example.com
description: The email address for this customer.
type: string
contactNumberAsE164:
example: '+14155552671'
description: The customer phone number in E164 format.
type: string
notes:
example: Notes about the customer.
description: The notes attached to the customer.
type: string
salutation:
example: Mr.
description: Salutation for the customer (Mr., Mrs., Dr., etc...).
type: string
sendEmailReceipts:
example: true
description: Default value of emailNotification setting for new customers
type: boolean
emailNotification:
default: DONT_CHANGE
description: Update the customer email notification setting. For example, sendEmailReceipts = true, emailNotification = DONT_CHANGE - sends receipt email for all users who haven't disabled it in the Backoffice. sendEmailReceipts = false, emailNotification = DONT_CHANGE - will not send receipt email for all users except those who enabled it in the Backoffice
enum:
- ENABLE
- DISABLE
- DONT_CHANGE
type: string
type: object
apeMenuItemEntry:
title: menuItem
allOf:
- type: object
properties:
'@type':
type: string
description: Indicates this is an individual item.
example: menuItem
enum:
- menuItem
- $ref: '#/components/schemas/apeMenuItemEntryParent'
- type: object
properties:
asSubItem:
type: boolean
description: Indicates whether or not this product is a sub-item that cannot be sold alone. Note - when the item is nested under a `menuDeal` this will always be false.
productionInstructionList:
type: array
description: Array of production instructions for this product
items:
$ref: '#/components/schemas/apeProductionInstruction'
example:
- multiSelectionPermitted: false
productionInstructionGroupName: Meat cooking
productionIntructionGroupId: 236025632784487
productionInstructionList:
- instruction: Bleu
ikentooModifierId: 236025632784488
- instruction: Rare
ikentooModifierId: 236025632784490
- instruction: Medium Rare
ikentooModifierId: 236025632784492
- instruction: Medium
ikentooModifierId: 236025632784494
- instruction: Medium well
ikentooModifierId: 236025632784496
- instruction: Well done
ikentooModifierId: 236025632784498
apeMenuV2:
properties:
menuName:
description: The name of the menu.
type: string
example: Main Menu
menuEntryGroups:
description: 'Menu groups of this menu. The top-level entry will always be of type "group", representing a menu screen. Beneath each `menuEntryGroup` will be a `menuEntry` array containing any combination of one or more menu entries:
* A `menuItemEntry` represents an individual item and may include product modifier groups.
* A `menuGroupEntry` represents a menu sub-screen.
* A `menuDealEntry` represents a combo.
* A `menuProductModifierEntry` represents a product modifier.'
items:
$ref: '#/components/schemas/apeTopLevelMenuGroupEntryV2'
type: array
richDataMissing:
description: Indicates whether or not rich item data is missing, if requested.
type: boolean
example: false
ikentooMenuId:
type: integer
description: The unique identifier for the menu.
example: 141948669132851
format: int64
conditionalTaxRules:
description: Warning that actual tax depends on a POS Account condition and may be different from what is provided in this API.
type: boolean
type: object
apeLocalOrderItemLine:
properties:
quantity:
example: 1
description: Quantity of item to be ordered.
type: integer
format: int32
sku:
example: UGG-BB-PUR-06
maxLength: 25
description: The SKU of the item to be ordered.
type: string
customItemName:
example: My Custom Item Name
description: The custom name to be used, if overwriting is permitted for this item.
type: string
customItemPrice:
example: 10.0
description: The custom price to be used, if custom pricing is permitted for this item.
type: number
discountAmountOverride:
description: The custom discount amount applied to this item. Only one of `discountAmountOverride` or `discountPercentOverride` can be set. Must be used in conjunction with a [discountCode](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-items-discountcode) and this discount must be configured as a "manual discount" in the POS. See [Understanding Discounts](https://k-series-support.lightspeedhq.com/hc/en-us/articles/1260804657089-Understanding-discounts).
type: number
example: 5.0
discountPercentOverride:
description: The custom percentage discount applied to this item. Only one of `discountAmountOverride` or `discountPercentOverride` can be set. Must be used in conjunction with a [discountCode](https://api-docs.lsk.lightspeed.app/operation/operation-apelocalorder#operation-apelocalorder-body-application-json-items-discountcode) and this discount must be configured as a "manual discount" in the POS. See [Understanding Discounts](https://k-series-support.lightspeedhq.com/hc/en-us/articles/1260804657089-Understanding-discounts).
type: number
example: 10.0
modifiers:
description: Collection of [modifiers](https://api-docs.lsk.lightspeed.app/operation/operation-apeloadallmodifiers) to be applied to this item.
type: array
items:
$ref: '#/components/schemas/apeItemModifier'
discountCode:
example: FIVEPERCENT
description: The discount code being applied to this item, if applicable.
type: string
course:
example: 2
description: The course number for this item, if applicable.
minimum: 0
type: integer
format: int32
subItems:
description: The sub-items applied to this item.
items:
$ref: '#/components/schemas/apeSubItemOrderLine'
type: array
type: object
required:
- quantity
- sku
apeAccountProfiles:
properties:
businessLocationId:
$ref: '#/components/schemas/apeBusinessLocationId'
accountProfileList:
items:
$ref: '#/components/schemas/apeAccountProfile'
type: array
type: object
apeStandalonePayment:
description: Payment to apply to an existing order.
type: object
required:
- businessLocationId
- endpointId
- paymentAmount
- thirdPartyPaymentReference
properties:
iKaccountId:
example: 0
type: integer
format: int64
deprecated: true
iKaccountIdentifier:
example: A1234.56
description: The ID of the account to apply this payment to.
type: string
thirdPartyPaymentReference:
description: A unique external reference provided for this order. This value will be sent back in the webhook.
type: string
minLength: 1
maxLength: 50
example: '12345678901234'
endpointId:
description: Endpoint ID for a unique webhook that has been created using [the webhook endpoint](https://api-docs.lsk.lightspeed.app/operation/operation-apecreatewebhookoo).
type: string
example: MY-AWESOME-ENDPOINT-ID
businessLocationId:
$ref: '#/components/schemas/apeBusinessLocationId'
taskTtlInMs:
example: 60000
description: Maximum time to attempt delivery of this payment to the POS. In milliseconds. The minimum value is 60000ms (1 minute).
type: integer
format: int32
staffId:
type: integer
format: int64
description: The ID of the employee responsible for this payment.
deviceId:
description: POS device to specifically receive this payment. If left null then all POS devices may receive the payment but only one will process it.
type: integer
format: int64
example: 12345678980
paymentMethod:
example: OOPAYMENT
description: Payment method code as configured by the merchant.
type: string
paymentAmount:
example: 20.06
description: The total amount of the payment without tips.
type: number
tipAmount:
example: 2.5
description: The tip amount, if any.
type: number
targetPrinterProfileId:
example: 1773881235
description: The printer profile id to use for printing the receipt for this payment. If not provided, the default active printer profile for the business location will be used.
type: integer
format: int64
apeItemRichData:
type: object
properties:
squareImageUrl:
description: A download link for the image associated with this item, as formatted for display in the POS.
type: string
example: http://s3-eu-west-1.amazonaws.com/com.ikentoo.trial.rich-content-store/8262_2f6c1716-0f06-488c-afc2-d888666d94fb.image/png
rawImageUrl:
description: A download link for the image associated with this item.
type: string
example: http://s3-eu-west-1.amazonaws.com/com.ikentoo.trial.rich-content-store/8262_2f6c1716-0f06-488c-afc2-d888666d94fb_raw.image/png
previewImageUrl:
description: A download link for the preview image associated with this item.
type: string
example: http://s3-eu-west-1.amazonaws.com/com.ikentoo.trial.rich-content-store/8262_2f6c1716-0f06-488c-afc2-d888666d94fb_preview.image/png
containsAlcohol:
description: Flag to indicate if the item contains alcohol.
type: boolean
example: true
alcoholPercentage:
description: The percentage of alcohol in the item.
type: number
example: 13.0
texts:
type: array
items:
$ref: '#/components/schemas/apeItemTexts'
allergenCodes:
description: The allergen codes associated with this item.
example:
- mustard
- cereals
uniqueItems: true
type: array
items:
type: string
apeTable:
description: The tables under this floorplan.
properties:
number:
description: The table number.
format: int32
type: integer
example: 1
reference:
description: The table reference.
type: string
example: abcdefg123456
id:
description: The unique identifier for this table.
type: string
example: '141948669132977'
active:
description: If the table is active.
type: boolean
example: true
description:
description: The table description.
type: string
example: Table 1
defaultClientCount:
description: The default client count for this table.
format: int32
type: integer
example: 4
type: object
apeMenuModifierGroupV2:
type: object
description: A product modifier group containing product modifiers to select from.
properties:
description:
type: string
description: Description of the modifier group.
example: Milk options
sku:
type: string
description: The SKU of the modifier group.
example: '30'
mustSelectAnItem:
type: boolean
description: Whether or not this is a required selection.
example: false
multiSelectionPermitted:
type: boolean
description: Whether or not multiple items can be selected from this modifier group.
example: false
minimumSelection:
type: integer
format: int32
description: The minimum number of items that must be selected from this modifier group. If null then no minimum is set.
example: 0
maximumSelection:
type: integer
format: int32
description: The maximum number of items that can be selected from this modifier group. If null then no maximum is set.
example: 2
itemRichData:
$ref: '#/components/schemas/apeItemRichData'
productModifiers:
description: Array of product modifiers within this modifier group.
type: array
items:
$ref: '#/components/schemas/apeMenuProductModifierEntryV2'
apeToGoOrderItemLine:
properties:
quantity:
example: 1
description: Quantity of item to be ordered.
type: integer
format: int32
sku:
example: UGG-BB-PUR-06
maxLength: 25
description: The SKU of the item to be ordered.
type: string
customItemName:
example: My Custom Item Name
description: The custom name to be used, if overwriting is permitted for this item.
type: string
customItemPrice:
example: 10.0
description: The custom price to be used, if custom pricing is permitted for this item.
type: number
discountAmountOverride:
description: The custom discount amount applied to this item. Only one of `discountAmountOverride` or `discountPercentOverride` can be set.
type: number
example: 5.0
discountPercentOverride:
description: The custom percentage discount applied to this item. Only one of `discountAmountOverride` or `discountPercentOverride` can be set.
type: number
example: 10.0
modifiers:
description: Collection of [modifiers](https://api-docs.lsk.lightspeed.app/operation/operation-apeloadallmodifiers) to be applied to this item.
type: array
items:
$ref: '#/components/schemas/apeItemModifier'
discountCode:
example: FIVEPERCENT
description: The discount code being applied to this item, if applicable.
type: string
subItems:
type: array
items:
$ref: '#/components/schemas/apeSubItemOrderLine'
type: object
required:
- quantity
- sku
apeSkusRequest:
type: object
required:
- skus
properties:
skus:
type: array
items:
type: string
example: SKU1
minItems: 1
maxItems: 50
description: List of SKUs to return.
apeTagCode:
description: The order profile [code](https://api-docs.lsk.lightspeed.app/operation/operation-apeaccountprofiles#operation-apeaccountprofiles-200-body-application-json-accountprofilelist-code).
type: string
example: DELIVERY
apeSubItemOrderLine:
required:
- quantity
- sku
properties:
quantity:
example: 1
description: Quantity of sub-item to be ordered.
type: integer
format: int32
sku:
example: ABC-123
maxLength: 25
description: The SKU of the sub-item to be ordered.
type: string
customItemName:
example: My Custom Sub-Item Name
description: The custom name to be used if overwriting is supported for this sub-item.
type: string
customItemPrice:
example: 2.0
description: The custom price to be used if overwriting is supported for this sub-item.
type: number
modifiers:
description: Collection of modifiers to be applied to this sub-item.
items:
$ref: '#/components/schemas/apeItemModifier'
type: array
subItems:
description: Product modifiers applied to this item.
items:
$ref: '#/components/schemas/apeSubItemOrderLine'
type: array
type: object
apeItemTexts:
type: object
properties:
locale:
type: string
description: The two letter language code associated with this item text.
friendlyDisplayName:
type: string
description: The display name for this item in the configured language.
description:
type: string
description: The descriptive text for this item in the configured language.
example:
locale: en
friendlyDisplayName: Burger - ENG
description:
Burger in english
apeMenuGroupEntryV2: title: group allOf: - type: object properties: '@type': type: string description: Indicates this is a menu group. example: group enum: - group id: type: string description: The menu group ID. example: '141948669133028' name: type: string description: The menu group name. example: Mains color: type: string description: The color of the button in the POS. example: blue menuEntry: type: array description: Array of menu entry objects. items: type: object oneOf: - $ref: '#/components/schemas/apeMenuItemEntryV2' - $ref: '#/components/schemas/apeMenuDealEntryV2' - $ref: '#/components/schemas/apeMenuGroupEntryV2' - $ref: '#/components/schemas/apeMenuProductModifierEntryV2' discriminator: propertyName: '@type' mapping: menuItem: '#/components/schemas/apeMenuItemEntryV2' menuDeal: '#/components/schemas/apeMenuDealEntryV2' group: '#/components/schemas/apeMenuGroupEntryV2' menuProductModifier: '#/components/schemas/apeMenuProductModifierEntryV2' apeAccountLineItem: type: object properties: id: type: integer format: int64 description: The unique ID assigned to the sale line. example: 1341648999023061 uuid: type: string description: The UUID assigned to the sale line. example: 2c83b049-a2c1-4bc5-8479-eb152e5a54be itemName: type: string description: The name given to the item. example: Burger itemSku: type: string description: The SKU assigned to the item. example: '14' unitAmount: type: number description: The price per unit. example: 10.0 quantity: type: number format: double description: The quantity of the item for this sale line. example: 1.0 modifiers: type: array description: The modifiers of the item for this sale line. items: $ref: '#/components/schemas/apeModifier' amountWithTax: type: number description: The total price of the item including tax. example: 11.5 amountLessTax: type: number description: The total price of the item without tax. example: 10.0 discountedAmount: type: number description: The amount the item was discounted. example: 0.0 timeOfTransactionUtc: type: string format: date-time description: The date and time in UTC when the transaction occurred. example: 2023-11-07T21:24:44.741+0000 active: type: boolean deprecated: true example: true parentId: type: integer format: int64 writeOnly: true subLineItems: type: array description: Collection of sub-line items associated with this sale line. items: $ref: '#/components/schemas/apeAccountLineItem' example: - id: 1341648999023062 uuid: 2c83b049-a2c1-4bc5-8479-eb152e5a54be itemName: Extra Cheese itemSku: '35' unitAmount: 1.0 quantity: 1.0 modifiers: [] amountWithTax: 1.15 amountLessTax: 1.0 discountedAmount: 0.0 grossUnitAmount: 1.0 timeOfTransactionUtc: 2023-11-07T21:24:44.755+0000 active: true subLineItems: [] taxIncluded: false isTaxIncluded: type: boolean writeOnly: true taxIncluded: type: boolean description: Indicates whether tax is included in the unit amount. example: false apeRestrictedItem: type: object properties: sku: type: string description: The SKU assigned to the item. example: SKU1 count: type: integer description: The count of available items. format: int64 example: 50 updatedAt: type: string format: date-time description: The last update of the item count. example: '2025-07-08T14:20:00Z' apeMenuItemEntryParentV2: properties: productName: type: string description: The name of the item. example: Burger productPrice: type: number description: The price of the item. example: 10.0 extraPrice: type: number description: Additional item price when selected in a combo group. example: 1.99 color: type: string description: The color of the menu button for this item. example: blue sku: type: string description: The SKU of the item. example: '25' customItemNameEnabled: type: boolean description: Whether the name of the item can be customized. example: false pricingStrategy: type: string description: The pricing type of the item. example: PRICE_CANNOT_BE_CUSTOMIZED enum: - CUSTOMIZED_ITEM_PRICE_WILL_BE_NEGATIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_POSTIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_A_PERCENTAGE_OF_TOTAL - PRICE_CANNOT_BE_CUSTOMIZED itemRichData: $ref: '#/components/schemas/apeItemRichData' defaultTaxAmount: description: The tax amount as calculated at the default tax rate (a sum for multiple taxes). type: number example: 1.5 defaultTaxPercentage: description: The default tax percentage for this item (a sum for multiple taxes). type: number example: 15.0 taxIncludedInPrice: description: Whether or not tax is included in the price of the item. type: boolean example: false conditionalTaxRules: description: Warning that actual tax depends on a POS Account condition and may be different from what is provided in this API. type: boolean taxes: description: Detailed tax info items: $ref: '#/components/schemas/apeMenuItemTax' type: array apeAccountPaymentLine: type: object properties: paymentMethodDescription: type: string description: Payment method for this payment line. example: API Payment externalReference: type: string description: Payment external reference. example: '12345678901234' paymentMethodCode: type: string description: Payment method code for this payment line. example: APM amountPaid: type: number description: Amount paid for this payment line. example: 12.65 paymentDate: type: string format: date-time description: Date/Time in UTC of this payment. example: 2023-11-07T22:05:16.127+0000 active: type: boolean description: Whether this payment line is active or not. example: true accountCancelled: type: boolean writeOnly: true description: Payments associated with this check. apeMenuDealEntry: title: menuDeal allOf: - type: object properties: '@type': type: string description: Indicates the item is a Combo. example: menuDeal enum: - menuDeal items: description: List of items to select from. type: array items: $ref: '#/components/schemas/apeMenuItemEntry' menuDealGroups: type: array description: Array of Items in the Combo items: $ref: '#/components/schemas/apeMenuDealGroup' - $ref: '#/components/schemas/apeMenuItemEntryParent' apeModifier: type: object properties: name: example: Rare description: The name of the modifier. type: string quantity: example: 1 description: The quantity of the modifier. type: integer format: int32 description: The modifiers of the item for this sale line apeProductionInstructionEntry: type: object properties: instruction: type: string description: The name of the production instruction. ikentooModifierId: description: The unique identifier of this production instruction. type: integer format: int64 description: Array of production instructions for this group apeMenuDealEntryV2: title: menuDeal allOf: - type: object properties: '@type': type: string description: Indicates the item is a Combo. example: menuDeal enum: - menuDeal items: description: List of items to select from. type: array items: $ref: '#/components/schemas/apeMenuItemEntryV2' menuDealGroups: type: array description: Array of Items in the Combo items: $ref: '#/components/schemas/apeMenuDealGroupV2' - $ref: '#/components/schemas/apeMenuItemEntryParentV2' apeProductionInstruction: type: object properties: multiSelectionPermitted: type: boolean description: Specifies if more than one production instruction can be selected for this group. productionInstructionGroupName: type: string description: The group name for this production instruction. productionIntructionGroupId: type: integer description: The unique identifier for this production instruction group. format: int64 productionInstructionList: type: array description: Array of production instructions for this group. items: $ref: '#/components/schemas/apeProductionInstructionEntry' apePaymentSubmissionResponse: description: Acknowledgement that the payment was accepted for delivery to the POS. type: object properties: status: description: The response. example: ok type: string apeOrderPayment: required: - paymentAmount properties: paymentMethod: example: OOPAYMENT description: Payment method code as configured by the merchant. type: string paymentAmount: example: 14.0 description: The total amount of the payment including tips if any. type: number tipAmount: example: 2.0 description: The tip amount, if any. type: number type: object apeCurrentWarning: type: object properties: information: type: string type: type: string apeMenuGroupEntry: title: group allOf: - type: object properties: '@type': type: string description: Indicates this is a sub-screen of the menu in the POS. The object will have the same structure as the `menuEntryGroups` object and may contain any of the three `menuEntry` types. example: group enum: - group - type: object properties: id: type: string description: The menu group ID. example: '141948669133028' name: type: string description: The menu group name. example: Mains color: type: string description: The color of the button in the POS. example: blue menuEntry: type: array description: Array of menu entry objects. items: type: object oneOf: - $ref: '#/components/schemas/apeMenuItemEntry' - $ref: '#/components/schemas/apeMenuDealEntry' - $ref: '#/components/schemas/apeMenuGroupEntry' discriminator: propertyName: '@type' mapping: menuItem: '#/components/schemas/apeMenuItemEntry' menuDeal: '#/components/schemas/apeMenuDealEntry' group: '#/components/schemas/apeMenuGroupEntry' apeMenuItemEntryV2: title: menuItem allOf: - type: object properties: '@type': type: string description: Indicates this is an individual item. example: menuItem enum: - menuItem - $ref: '#/components/schemas/apeMenuItemEntryParentV2' - type: object properties: asSubItem: type: boolean description: Indicates whether or not this product is a sub-item that cannot be sold alone. Note - when the item is nested under a `menuDeal` this will always be false. productionInstructionList: type: array description: Array of production instructions for this product items: $ref: '#/components/schemas/apeProductionInstruction' example: - multiSelectionPermitted: false productionInstructionGroupName: Meat cooking productionIntructionGroupId: 236025632784487 productionInstructionList: - instruction: Bleu ikentooModifierId: 236025632784488 - instruction: Rare ikentooModifierId: 236025632784490 - instruction: Medium Rare ikentooModifierId: 236025632784492 - instruction: Medium ikentooModifierId: 236025632784494 - instruction: Medium well ikentooModifierId: 236025632784496 - instruction: Well done ikentooModifierId: 236025632784498 menuModifierGroups: type: array description: Array of product modifier groups for this product items: $ref: '#/components/schemas/apeMenuModifierGroupV2' apeFloorPlanId: type: integer format: int64 example: 45454565682155 description: The unique identifier for the floor plan. See [Get Floorplans](https://api-docs.lsk.lightspeed.app/operation/operation-apelookupfloorplans) apeMenuDealGroup: type: object properties: description: type: string description: Description of the combo item grouping. example: Side Dishes sku: type: string description: The SKU of the combo item grouping. example: '25' mustSelectAnItem: type: boolean description: Whether or not this is a required selection. example: true multiSelectionPermitted: type: boolean description: Whether or not multiple items can be selected from this item grouping. example: true minimumSelection: type: integer format: int32 description: The minimum number of items that must be selected from this item grouping. If null then no minimum is set. example: 1 maximumSelection: type: integer format: int32 description: The maximum number of items that can be selected from this item grouping. If null then no maximum is set. example: 3 itemRichData: $ref: '#/components/schemas/apeItemRichData' items: description: List of items to select from. type: array items: $ref: '#/components/schemas/apeMenuItemEntry' description: Collections of item groups within the combo to select from. apeDiscount: type: object properties: name: type: string description: The discount name as configured in merchant account. example: Staff Discount code: type: string description: The discount code as configured in merchant account. example: STAFF discountPercentage: type: number description: The discount percentage, may be fractional. A discount can be a percentage or an amount, but not both. example: 15 discountAmount: type: number description: The discount amount, may be fractional. A discount can be a percentage or an amount, but not both. example: 5 apeMenu: properties: menuName: description: The name of the menu. type: string example: Main Menu menuEntryGroups: description: 'Menu groups of this menu. The top-level entry will always be of type "group", representing a menu screen. Beneath each `menuEntryGroup` will be a `menuEntry` array containing any combination of one or more menu entries: * A `menuItemEntry` represents an individual item. * A `menuGroupEntry` represents a menu sub-screen. * A `menuDealEntry` represents a combo.' items: $ref: '#/components/schemas/apeTopLevelMenuGroupEntry' type: array richDataMissing: description: Indicates whether or not rich item data is missing, if requested. type: boolean example: false ikentooMenuId: type: integer description: The unique identifier for the menu. example: 141948669132851 format: int64 conditionalTaxRules: description: Warning that actual tax depends on a POS Account condition and may be different from what is provided in this API. type: boolean type: object apeAccountProfile: properties: id: format: int64 type: integer description: The unique identifier for the order profile. example: 12454575601144 code: type: string description: A short code representing the order profile. example: takeaway name: type: string example: Takeaway description: The system display name for the order profile. deliveryMode: enum: - NONE - TAKE_AWAY - DELIVERY type: string example: TAKE_AWAY description: Specifies the delivery mode for the order profile. type: object apeMenuProductModifierEntryV2: title: menuProductModifier allOf: - type: object properties: '@type': type: string description: Indicates this is a product modifier. example: menuProductModifier enum: - menuProductModifier - $ref: '#/components/schemas/apeMenuItemEntryParentV2' - type: object properties: productionInstructionList: type: array description: Array of production instructions for this modifier items: $ref: '#/components/schemas/apeProductionInstruction' example: - multiSelectionPermitted: false productionInstructionGroupName: Meat cooking productionIntructionGroupId: 236025632784487 productionInstructionList: - instruction: Bleu ikentooModifierId: 236025632784488 - instruction: Rare ikentooModifierId: 236025632784490 - instruction: Medium Rare ikentooModifierId: 236025632784492 - instruction: Medium ikentooModifierId: 236025632784494 - instruction: Medium well ikentooModifierId: 236025632784496 - instruction: Well done ikentooModifierId: 236025632784498 apePaymentBadRequestError: description: Standard error payload returned for a rejected payment request. type: object properties: timestamp: type: string format: date-time description: The date and time at which the error occurred, in UTC. example: 2023-11-07T23:00:20.075+0000 status: type: integer description: The HTTP status code indicating the type of error. example: 400 error: type: string description: A short description of the HTTP status code meaning. example: Bad Request message: type: string description: A detailed message describing the error, including any specific details about the request that led to the error. example: reference has already been used 12345678901234 path: type: string description: The request path where the error occurred. example: /o/op/1/pay apeBusinessLocationId: description: The unique identifier for the business location. type: integer format: int64 example: 45454565682155 apeMenuItemEntryParent: properties: productName: type: string description: The name of the item. example: Burger productPrice: type: number description: The price of the item. example: 10.0 extraPrice: type: number description: Additional item price when selected in a combo group. example: 1.99 color: type: string description: The color of the menu button for this item. example: blue sku: type: string description: The SKU of the item. example: '25' customItemNameEnabled: type: boolean description: Whether the name of the item can be customized. example: false pricingStrategy: type: string description: The pricing type of the item. example: PRICE_CANNOT_BE_CUSTOMIZED enum: - CUSTOMIZED_ITEM_PRICE_WILL_BE_NEGATIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_POSTIVE - CUSTOMIZED_ITEM_PRICE_WILL_BE_A_PERCENTAGE_OF_TOTAL - PRICE_CANNOT_BE_CUSTOMIZED itemRichData: $ref: '#/components/schemas/apeItemRichData' defaultTaxAmount: description: The tax amount as calculated at the default tax rate (a sum for multiple taxes). type: number example: 1.5 defaultTaxPercentage: description: The default tax percentage for this item (a sum for multiple taxes). type: number example: 15.0 taxIncludedInPrice: description: Whether or not tax is included in the price of the item. type: boolean example: false conditionalTaxRules: description: Warning that actual tax depends on a POS Account condition and may be different from what is provided in this API. type: boolean taxes: description: Detailed tax info items: $ref: '#/components/schemas/apeMenuItemTax' type: array apeTopLevelMenuGroupEntryV2: allOf: - type: object properties: '@type': type: string description: Indicates this is a menu group. example: group enum: - group id: type: string description: The menu group ID. example: '141948669133028' name: type: string description: The menu group name. example: Mains color: type: string description: The color of the button in the POS. example: blue menuEntry: type: array description: Array of menu entry objects. items: type: object oneOf: - $ref: '#/components/schemas/apeMenuItemEntryV2' - $ref: '#/components/schemas/apeMenuDealEntryV2' - $ref: '#/components/schemas/apeMenuGroupEntryV2' - $ref: '#/components/schemas/apeMenuProductModifierEntryV2' discriminator: propertyName: '@type' mapping: menuItem: '#/components/schemas/apeMenuItemEntryV2' menuDeal: '#/components/schemas/apeMenuDealEntryV2' group: '#/components/schemas/apeMenuGroupEntryV2' menuProductModifier: '#/components/schemas/apeMenuProductModifierEntryV2' apePaginatedMetadata: type: object properties: warnings: description: A list of warnings that occurred during the request, but which did not prevent a successful response. For instance, if the Business Location does not have the required POS app version to support item availability. type: array items: $ref: '#/components/schemas/apeCurrentWarning' current: $ref: '#/components/schemas/apeCurrentInfo' total: type: integer format: int32 example: 1 description: Total number of items requested. totalPages: type: integer format: int32 example: 10 description: Total number of pages of items. apeMenuDealGroupV2: type: object properties: description: type: string description: Description of the combo item grouping. example: Side Dishes sku: type: string description: The SKU of the combo item grouping. example: '25' mustSelectAnItem: type: boolean description: Whether or not this is a required selection. example: true multiSelectionPermitted: type: boolean description: Whether or not multiple items can be selected from this item grouping. example: true minimumSelection: type: integer format: int32 description: The minimum number of items that must be selected from this item grouping. If null then no minimum is set. example: 1 maximumSelection: type: integer format: int32 description: The maximum number of items that can be selected from this item grouping. If null then no maximum is set. example: 3 itemRichData: $ref: '#/components/schemas/apeItemRichData' items: description: List of items to select from. type: array items: $ref: '#/components/schemas/apeMenuItemEntryV2' description: Collections of item groups within the combo to select from. securitySchemes: OAuth2: description: 'The Lightspeed Restaurant K-Series APIs support OAuth2 authentication using the [authorization code grant flow](https://www.oauth.com/oauth2-servers/server-side-apps/authorization-code/). See our [Authorization Quick Start Guide](https://api-portal.lsk.lightspeed.app/quick-start/authentication/authorization-overview) for more details on how to authenticate. ' type: oauth2 flows: authorizationCode: authorizationUrl: /oauth/authorize tokenUrl: /oauth/token scopes: orders-api: 'Read business information, floors, menus, discounts, and production instructions. Read and write orders and payments. Read [Rich Item](https://api-docs.lsk.lightspeed.app/prod/group/endpoint-rich-item) data.' financial-api: Read financial data reservation-***: Platform reservations scope. The `***` will be replaced by the [platform-code](https://api-docs.lsk.lightspeed.app/operation/operation-reservation-servicesetbyplatformcode#operation-reservation-servicesetbyplatformcode-platform-code) of the reservation platform. items: Read and write items propertymanagement: Read and write Property Management System configurations. id-cards: Create and manage ID card batches and cards. staff-api: Read shift information, read and write user information. reservations-api: 'Configure *legacy* reservation integrations. **Note:** This API will eventually be deprecated in favour of the new [Reservations for Platforms](https://api-docs.lsk.lightspeed.app/group/endpoint-reservations-for-platforms) API. More information on the new reservations workflows can be found in the [Integration Guide](https://api-portal.lsk.lightspeed.app/category/reservations).' x-tagGroups: - name: Rich Item API tags: - Rich Item - Migration - name: Tax Preview API tags: - Tax Breakdown - name: Staff Api tags: - Staff - Internal Staff - name: Reservation API tags: - Reservations for Platforms - name: PMS API tags: - PMS - name: Items API tags: - Items - ItemsV2 - Menus - Buttons - Production Instructions - Inventory - Combos - Groups - MenusV2 - Accounting Group - IntegrationMenu - Price Lists - Products - ItemAppearance - Modifiers - ModifierGroups - Allergens - Locales - RichItem - name: id-cards-api API tags: - ID Cards - name: Financial API tags: - Financial - FinancialV2 - name: Online Ordering API tags: - Order and Pay - 'Order and Pay: Webhook'