iKentoo API documentation

Order and payment REST Service API Guide

Table of contents

Resources

Get businesses data

Lookup Businesses

GET /op/data/businesses

Lookup user businesses and their business locations.

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Optional Description

[].name

String

true

Business name.

[].id

Integer

true

Business id.

[].businessLocations

Array[Object]

true

The business locations under this business.

[].businessLocations[].name

String

true

Business location name.

[].businessLocations[].id

Integer

true

Business location id.

Example request

$ curl 'https://apiBaseEndpoint/op/data/businesses' -i

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 175

[ {
  "name" : "iKentoo",
  "id" : 1,
  "businessLocations" : [ {
    "name" : "Demo",
    "id" : 25769803788
  }, {
    "name" : "iKentoo 2",
    "id" : 25769805870
  } ]
} ]

Get floor plans

Lookup Floor Plans

GET /op/data/{businessLocationId}/floorplans

Lookup floor plans for a given business location.

Path parameters

Parameter Type Optional Description

businessLocationId

Integer

false

The business location id.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Optional Description

[].name

String

true

Floor plan name.

[].tables

Array[Object]

true

The tables under this floor plan.

[].tables[].number

Integer

true

Table number.

[].tables[].description

String

true

Table description.

[].tables[].defaultClientCount

Integer

true

Default client count for this table.

Example request

$ curl 'https://apiBaseEndpoint/op/data/1234/floorplans' -i

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 605

[ {
  "name" : "Salle 1",
  "tables" : [ {
    "number" : 1,
    "description" : "Table 1",
    "defaultClientCount" : 2
  }, {
    "number" : 2,
    "description" : "Table 2",
    "defaultClientCount" : 4
  }, {
    "number" : 3,
    "description" : "Table 3",
    "defaultClientCount" : 5
  } ]
}, {
  "name" : "Terrasse",
  "tables" : [ {
    "number" : 21,
    "description" : "Table 21",
    "defaultClientCount" : 24
  }, {
    "number" : 22,
    "description" : "Table 22",
    "defaultClientCount" : 2
  }, {
    "number" : 23,
    "description" : "Table 3",
    "defaultClientCount" : 3
  } ]
} ]

Loading menus for a Business Location

Load Menus

GET /op/1/menu/list

Load all menu (only name and id) for a given business location.

Path parameters

No parameters.

Query parameters

Parameter Type Optional Description

businessLocationId

Integer

false

Is the business location ID for the site within the business.

Request fields

No request body.

Response fields

Path Type Optional Description

[].menuName

String

true

Name of the Menu.

[].ikentooMenuId

Integer

true

IKentoo Menu ID.

Example request

$ curl 'https://apiBaseEndpoint/op/1/menu/list?businessLocationId=12345678' -i -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 166

[ {
  "menuName" : "Carte",
  "ikentooMenuId" : 1234
}, {
  "menuName" : "Dessert",
  "ikentooMenuId" : 3456
}, {
  "menuName" : "Drink",
  "ikentooMenuId" : 4321
} ]

Loading a menu for a Business Location

Load Menu

GET /op/1/menu/load/{menuId}

Path parameters

Parameter Type Optional Description

menuId

Integer

false

Is the iKentoo ID of the menu you would like to load.

Query parameters

Parameter Type Optional Description

businessLocationId

Integer

false

Is the business location ID for the site within the business.

richContent

Boolean

true

Include rich product content in the response.

Request fields

No request body.

Response fields

Path Type Optional Description

menuName

String

true

Name of the Menu.

menuEntryGroups

Array[Object]

true

Top level menu groups for this menu.

menuEntryGroups[].type

String

true

menuEntryGroups[].productName

String

true

Product name.

menuEntryGroups[].productPrice

Decimal

true

Product price.

menuEntryGroups[].color

String

true

Color of the button in the POS.

menuEntryGroups[].sku

String

true

SKU business wide unique product identifier as defined by the customer.

menuEntryGroups[].defaultTaxAmount

Decimal

true

The amount of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].defaultTaxPercentage

Decimal

true

The percentage of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].menuDealGroups

Array[Object]

true

Array of Meal Deals.

menuEntryGroups[].menuDealGroups[].description

String

true

Description for this meal deal group.

menuEntryGroups[].menuDealGroups[].mustSelectAnItem

Boolean

true

Must a product in this group be chosen.

menuEntryGroups[].menuDealGroups[].multiSelectionPermitted

Boolean

true

Can more than one product be selected for this group.

menuEntryGroups[].menuDealGroups[].items

Array[Object]

true

Array if products associated to this deal group.

menuEntryGroups[].menuDealGroups[].items[].productName

String

true

Product name.

menuEntryGroups[].menuDealGroups[].items[].productPrice

Decimal

true

Product price.

menuEntryGroups[].menuDealGroups[].items[].color

String

true

Color of the button in the POS.

menuEntryGroups[].menuDealGroups[].items[].sku

String

true

SKU business wide unique product identifier as defined by the customer.

menuEntryGroups[].menuDealGroups[].items[].asSubItem

Boolean

true

If true, indicates that this product is inserted as a sub product of the product above it in the Array.

menuEntryGroups[].menuDealGroups[].items[].customItemNameEnabled

Boolean

true

If this is true you can override the original name of this when placing the order.

menuEntryGroups[].menuDealGroups[].items[].pricingStrategy

String

true

Defines how the product price is applied, one of ${value}.

Must be one of [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].

menuEntryGroups[].menuDealGroups[].items[].itemRichData

Object

true

Optional rich data associated with this product.

menuEntryGroups[].menuDealGroups[].items[].itemRichData.squareImageUrl

String

true

URL for a square aspect ratio image representing this product.

menuEntryGroups[].menuDealGroups[].items[].itemRichData.rawImageUrl

String

true

URL for original image (before cropping) representing this product.

menuEntryGroups[].menuDealGroups[].items[].itemRichData.texts

Array[Object]

true

List containing text based meta data for this item.

menuEntryGroups[].menuDealGroups[].items[].itemRichData.texts[].locale

String

true

Locale for this text based meta data.

menuEntryGroups[].menuDealGroups[].items[].itemRichData.texts[].friendlyDisplayName

String

true

Customer friendly display name for this product.

menuEntryGroups[].menuDealGroups[].items[].itemRichData.texts[].description

String

true

Rich description of this product.

menuEntryGroups[].menuDealGroups[].items[].itemRichData.allergenCodes

Array[String]

true

Item allergens. Codes only (use /allergens endpoint of rich item API to get allergen list).

menuEntryGroups[].menuDealGroups[].items[].defaultTaxAmount

Decimal

true

The amount of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].menuDealGroups[].items[].defaultTaxPercentage

Decimal

true

The percentage of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].menuDealGroups[].items[].productionInstructionList

Array[Object]

true

Array of production instructions for this product.

menuEntryGroups[].menuDealGroups[].items[].productionInstructionList[].multiSelectionPermitted

Boolean

true

Can more than one production instruction be selected for this group.

menuEntryGroups[].menuDealGroups[].items[].productionInstructionList[].productionInstructionGroupName

String

true

The group name for this production instruction.

menuEntryGroups[].menuDealGroups[].items[].productionInstructionList[].productionIntructionGroupId

Integer

true

The internal iKentoo ID for this production instruction group.

menuEntryGroups[].menuDealGroups[].items[].productionInstructionList[].productionInstructionList

Array[Object]

true

An array of production instructions belonging to this group.

menuEntryGroups[].menuDealGroups[].items[].productionInstructionList[].productionInstructionList[].instruction

String

true

The production instruction name as define by customer.

menuEntryGroups[].menuDealGroups[].items[].productionInstructionList[].productionInstructionList[].ikentooModifierId

Integer

true

Internal iKentoo modifier ID to be used when placing an order through the API when selection this production instruction.

menuEntryGroups[].menuDealGroups[].items[].taxIncludedInPrice

Boolean

true

Indicated if the product price includes tax.

menuEntryGroups[].menuDealGroups[].items[].type

String

true

menuEntryGroups[].items

Array[Object]

true

Array of menu items.

menuEntryGroups[].items[].productName

String

true

Product name.

menuEntryGroups[].items[].productPrice

Decimal

true

Product price.

menuEntryGroups[].items[].color

String

true

Color of the button in the POS.

menuEntryGroups[].items[].sku

String

true

SKU business wide unique product identifier as defined by the customer.

menuEntryGroups[].items[].asSubItem

Boolean

true

If true, indicates that this product is inserted as a sub product of the product above it in the Array.

menuEntryGroups[].items[].customItemNameEnabled

Boolean

true

If this is true you can override the original name of this when placing the order.

menuEntryGroups[].items[].pricingStrategy

String

true

Defines how the product price is applied, one of ${value}.

Must be one of [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].

menuEntryGroups[].items[].itemRichData

Object

true

Optional rich data associated with this product.

menuEntryGroups[].items[].itemRichData.squareImageUrl

String

true

URL for a square aspect ratio image representing this product.

menuEntryGroups[].items[].itemRichData.rawImageUrl

String

true

URL for original image (before cropping) representing this product.

menuEntryGroups[].items[].itemRichData.texts

Array[Object]

true

List containing text based meta data for this item.

menuEntryGroups[].items[].itemRichData.texts[].locale

String

true

Locale for this text based meta data.

menuEntryGroups[].items[].itemRichData.texts[].friendlyDisplayName

String

true

Customer friendly display name for this product.

menuEntryGroups[].items[].itemRichData.texts[].description

String

true

Rich description of this product.

menuEntryGroups[].items[].itemRichData.allergenCodes

Array[String]

true

Item allergens. Codes only (use /allergens endpoint of rich item API to get allergen list).

menuEntryGroups[].items[].defaultTaxAmount

Decimal

true

The amount of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].items[].defaultTaxPercentage

Decimal

true

The percentage of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].items[].productionInstructionList

Array[Object]

true

Array of production instructions for this product.

menuEntryGroups[].items[].productionInstructionList[].multiSelectionPermitted

Boolean

true

Can more than one production instruction be selected for this group.

menuEntryGroups[].items[].productionInstructionList[].productionInstructionGroupName

String

true

The group name for this production instruction.

menuEntryGroups[].items[].productionInstructionList[].productionIntructionGroupId

Integer

true

The internal iKentoo ID for this production instruction group.

menuEntryGroups[].items[].productionInstructionList[].productionInstructionList

Array[Object]

true

An array of production instructions belonging to this group.

menuEntryGroups[].items[].productionInstructionList[].productionInstructionList[].instruction

String

true

The production instruction name as define by customer.

menuEntryGroups[].items[].productionInstructionList[].productionInstructionList[].ikentooModifierId

Integer

true

Internal iKentoo modifier ID to be used when placing an order through the API when selection this production instruction.

menuEntryGroups[].items[].taxIncludedInPrice

Boolean

true

Indicated if the product price includes tax.

menuEntryGroups[].items[].type

String

true

menuEntryGroups[].itemRichData

Object

true

Optional rich data associated with this product.

menuEntryGroups[].itemRichData.squareImageUrl

String

true

URL for a square aspect ratio image representing this product.

menuEntryGroups[].itemRichData.rawImageUrl

String

true

URL for original image (before cropping) representing this product.

menuEntryGroups[].itemRichData.texts

Array[Object]

true

List containing text based meta data for this item.

menuEntryGroups[].itemRichData.texts[].locale

String

true

Locale for this text based meta data.

menuEntryGroups[].itemRichData.texts[].friendlyDisplayName

String

true

Customer friendly display name for this product.

menuEntryGroups[].itemRichData.texts[].description

String

true

Rich description of this product.

menuEntryGroups[].itemRichData.allergenCodes

Array[String]

true

Item allergens. Codes only (use /allergens endpoint of rich item API to get allergen list).

menuEntryGroups[].taxIncludedInPrice

Boolean

true

Indicates if product price is including the tax.

menuEntryGroups[].name

String

true

Group name.

menuEntryGroups[].menuEntry

Array[Object]

true

Array of item entries.

menuEntryGroups[].menuEntry[].type

String

true

menuEntryGroups[].menuEntry[].productName

String

true

Product name.

menuEntryGroups[].menuEntry[].productPrice

Decimal

true

Product price.

menuEntryGroups[].menuEntry[].color

String

true

Color of the button in the POS.

menuEntryGroups[].menuEntry[].sku

String

true

SKU business wide unique product identifier as defined by the customer.

menuEntryGroups[].menuEntry[].defaultTaxAmount

Decimal

true

The amount of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].menuEntry[].defaultTaxPercentage

Decimal

true

The percentage of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].menuEntry[].menuDealGroups

Array[Object]

true

Array of Meal Deals.

menuEntryGroups[].menuEntry[].menuDealGroups[].description

String

true

Description for this meal deal group.

menuEntryGroups[].menuEntry[].menuDealGroups[].mustSelectAnItem

Boolean

true

Must a product in this group be chosen.

menuEntryGroups[].menuEntry[].menuDealGroups[].multiSelectionPermitted

Boolean

true

Can more than one product be selected for this group.

menuEntryGroups[].menuEntry[].menuDealGroups[].items

Array[Object]

true

Array if products associated to this deal group.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].productName

String

true

Product name.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].productPrice

Decimal

true

Product price.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].color

String

true

Color of the button in the POS.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].sku

String

true

SKU business wide unique product identifier as defined by the customer.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].asSubItem

Boolean

true

If true, indicates that this product is inserted as a sub product of the product above it in the Array.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].customItemNameEnabled

Boolean

true

If this is true you can override the original name of this when placing the order.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].pricingStrategy

String

true

Defines how the product price is applied, one of ${value}.

Must be one of [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].

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].itemRichData

Object

true

Optional rich data associated with this product.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].itemRichData.squareImageUrl

String

true

URL for a square aspect ratio image representing this product.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].itemRichData.rawImageUrl

String

true

URL for original image (before cropping) representing this product.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].itemRichData.texts

Array[Object]

true

List containing text based meta data for this item.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].itemRichData.texts[].locale

String

true

Locale for this text based meta data.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].itemRichData.texts[].friendlyDisplayName

String

true

Customer friendly display name for this product.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].itemRichData.texts[].description

String

true

Rich description of this product.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].itemRichData.allergenCodes

Array[String]

true

Item allergens. Codes only (use /allergens endpoint of rich item API to get allergen list).

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].defaultTaxAmount

Decimal

true

The amount of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].defaultTaxPercentage

Decimal

true

The percentage of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].productionInstructionList

Array[Object]

true

Array of production instructions for this product.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].productionInstructionList[].multiSelectionPermitted

Boolean

true

Can more than one production instruction be selected for this group.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].productionInstructionList[].productionInstructionGroupName

String

true

The group name for this production instruction.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].productionInstructionList[].productionIntructionGroupId

Integer

true

The internal iKentoo ID for this production instruction group.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].productionInstructionList[].productionInstructionList

Array[Object]

true

An array of production instructions belonging to this group.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].productionInstructionList[].productionInstructionList[].instruction

String

true

The production instruction name as define by customer.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].productionInstructionList[].productionInstructionList[].ikentooModifierId

Integer

true

Internal iKentoo modifier ID to be used when placing an order through the API when selection this production instruction.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].taxIncludedInPrice

Boolean

true

Indicated if the product price includes tax.

menuEntryGroups[].menuEntry[].menuDealGroups[].items[].type

String

true

menuEntryGroups[].menuEntry[].items

Array[Object]

true

Array of menu items.

menuEntryGroups[].menuEntry[].items[].productName

String

true

Product name.

menuEntryGroups[].menuEntry[].items[].productPrice

Decimal

true

Product price.

menuEntryGroups[].menuEntry[].items[].color

String

true

Color of the button in the POS.

menuEntryGroups[].menuEntry[].items[].sku

String

true

SKU business wide unique product identifier as defined by the customer.

menuEntryGroups[].menuEntry[].items[].asSubItem

Boolean

true

If true, indicates that this product is inserted as a sub product of the product above it in the Array.

menuEntryGroups[].menuEntry[].items[].customItemNameEnabled

Boolean

true

If this is true you can override the original name of this when placing the order.

menuEntryGroups[].menuEntry[].items[].pricingStrategy

String

true

Defines how the product price is applied, one of ${value}.

Must be one of [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].

menuEntryGroups[].menuEntry[].items[].itemRichData

Object

true

Optional rich data associated with this product.

menuEntryGroups[].menuEntry[].items[].itemRichData.squareImageUrl

String

true

URL for a square aspect ratio image representing this product.

menuEntryGroups[].menuEntry[].items[].itemRichData.rawImageUrl

String

true

URL for original image (before cropping) representing this product.

menuEntryGroups[].menuEntry[].items[].itemRichData.texts

Array[Object]

true

List containing text based meta data for this item.

menuEntryGroups[].menuEntry[].items[].itemRichData.texts[].locale

String

true

Locale for this text based meta data.

menuEntryGroups[].menuEntry[].items[].itemRichData.texts[].friendlyDisplayName

String

true

Customer friendly display name for this product.

menuEntryGroups[].menuEntry[].items[].itemRichData.texts[].description

String

true

Rich description of this product.

menuEntryGroups[].menuEntry[].items[].itemRichData.allergenCodes

Array[String]

true

Item allergens. Codes only (use /allergens endpoint of rich item API to get allergen list).

menuEntryGroups[].menuEntry[].items[].defaultTaxAmount

Decimal

true

The amount of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].menuEntry[].items[].defaultTaxPercentage

Decimal

true

The percentage of Tax applied by default, this can change dynamically at time of sale.

menuEntryGroups[].menuEntry[].items[].productionInstructionList

Array[Object]

true

Array of production instructions for this product.

menuEntryGroups[].menuEntry[].items[].productionInstructionList[].multiSelectionPermitted

Boolean

true

Can more than one production instruction be selected for this group.

menuEntryGroups[].menuEntry[].items[].productionInstructionList[].productionInstructionGroupName

String

true

The group name for this production instruction.

menuEntryGroups[].menuEntry[].items[].productionInstructionList[].productionIntructionGroupId

Integer

true

The internal iKentoo ID for this production instruction group.

menuEntryGroups[].menuEntry[].items[].productionInstructionList[].productionInstructionList

Array[Object]

true

An array of production instructions belonging to this group.

menuEntryGroups[].menuEntry[].items[].productionInstructionList[].productionInstructionList[].instruction

String

true

The production instruction name as define by customer.

menuEntryGroups[].menuEntry[].items[].productionInstructionList[].productionInstructionList[].ikentooModifierId

Integer

true

Internal iKentoo modifier ID to be used when placing an order through the API when selection this production instruction.

menuEntryGroups[].menuEntry[].items[].taxIncludedInPrice

Boolean

true

Indicated if the product price includes tax.

menuEntryGroups[].menuEntry[].items[].type

String

true

menuEntryGroups[].menuEntry[].itemRichData

Object

true

Optional rich data associated with this product.

menuEntryGroups[].menuEntry[].itemRichData.squareImageUrl

String

true

URL for a square aspect ratio image representing this product.

menuEntryGroups[].menuEntry[].itemRichData.rawImageUrl

String

true

URL for original image (before cropping) representing this product.

menuEntryGroups[].menuEntry[].itemRichData.texts

Array[Object]

true

List containing text based meta data for this item.

menuEntryGroups[].menuEntry[].itemRichData.texts[].locale

String

true

Locale for this text based meta data.

menuEntryGroups[].menuEntry[].itemRichData.texts[].friendlyDisplayName

String

true

Customer friendly display name for this product.

menuEntryGroups[].menuEntry[].itemRichData.texts[].description

String

true

Rich description of this product.

menuEntryGroups[].menuEntry[].itemRichData.allergenCodes

Array[String]

true

Item allergens. Codes only (use /allergens endpoint of rich item API to get allergen list).

menuEntryGroups[].menuEntry[].taxIncludedInPrice

Boolean

true

Indicates if product price is including the tax.

menuEntryGroups[].menuEntry[].asSubItem

Boolean

true

If true, indicates that this product is inserted as a sub product of the product above it in the Array.

menuEntryGroups[].menuEntry[].customItemNameEnabled

Boolean

true

If this is true you can override the original name of this when placing the order.

menuEntryGroups[].menuEntry[].pricingStrategy

String

true

Defines how the product price is applied, one of ${value}.

Must be one of [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].

menuEntryGroups[].menuEntry[].productionInstructionList

Array[Object]

true

Array of production instructions for this product.

menuEntryGroups[].menuEntry[].productionInstructionList[].multiSelectionPermitted

Boolean

true

Can more than one production instruction be selected for this group.

menuEntryGroups[].menuEntry[].productionInstructionList[].productionInstructionGroupName

String

true

The group name for this production instruction.

menuEntryGroups[].menuEntry[].productionInstructionList[].productionIntructionGroupId

Integer

true

The internal iKentoo ID for this production instruction group.

menuEntryGroups[].menuEntry[].productionInstructionList[].productionInstructionList

Array[Object]

true

An array of production instructions belonging to this group.

menuEntryGroups[].menuEntry[].productionInstructionList[].productionInstructionList[].instruction

String

true

The production instruction name as define by customer.

menuEntryGroups[].menuEntry[].productionInstructionList[].productionInstructionList[].ikentooModifierId

Integer

true

Internal iKentoo modifier ID to be used when placing an order through the API when selection this production instruction.

menuEntryGroups[].asSubItem

Boolean

true

If true, indicates that this product is inserted as a sub product of the product above it in the Array.

menuEntryGroups[].customItemNameEnabled

Boolean

true

If this is true you can override the original name of this when placing the order.

menuEntryGroups[].pricingStrategy

String

true

Defines how the product price is applied, one of ${value}.

Must be one of [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].

menuEntryGroups[].productionInstructionList

Array[Object]

true

Array of production instructions for this product.

menuEntryGroups[].productionInstructionList[].multiSelectionPermitted

Boolean

true

Can more than one production instruction be selected for this group.

menuEntryGroups[].productionInstructionList[].productionInstructionGroupName

String

true

The group name for this production instruction.

menuEntryGroups[].productionInstructionList[].productionIntructionGroupId

Integer

true

The internal iKentoo ID for this production instruction group.

menuEntryGroups[].productionInstructionList[].productionInstructionList

Array[Object]

true

An array of production instructions belonging to this group.

menuEntryGroups[].productionInstructionList[].productionInstructionList[].instruction

String

true

The production instruction name as define by customer.

menuEntryGroups[].productionInstructionList[].productionInstructionList[].ikentooModifierId

Integer

true

Internal iKentoo modifier ID to be used when placing an order through the API when selection this production instruction.

richDataMissing

Boolean

true

Indicates if rich data is missing (only if requested).

ikentooMenuId

Integer

true

IKentoo Menu ID.

Example request

$ curl 'https://apiBaseEndpoint/op/1/menu/load/123?businessLocationId=1&richContent=true' -i -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 2970

{
  "menuName" : "Demo Menu",
  "menuEntryGroups" : [ {
    "@type" : "group",
    "name" : "Menu Group",
    "color" : "RED",
    "menuEntry" : [ {
      "@type" : "menuItem",
      "productName" : "Coke",
      "productPrice" : "5.50",
      "color" : "RED",
      "sku" : "SKU1",
      "asSubItem" : false,
      "customItemNameEnabled" : false,
      "pricingStrategy" : "PRICE_CANNOT_BE_CUSTOMIZED",
      "itemRichData" : {
        "squareImageUrl" : "https://imageUrl.com",
        "rawImageUrl" : "https://imageUrl.com/raw",
        "texts" : [ {
          "locale" : "en",
          "friendlyDisplayName" : "Coca cola",
          "description" : "This is a coca cola"
        } ],
        "allergenCodes" : [ "soybeans" ]
      },
      "defaultTaxAmount" : "0.44",
      "taxIncludedInPrice" : true,
      "type" : "menuItem"
    }, {
      "@type" : "menuItem",
      "productName" : "Beef Patty",
      "productPrice" : "8.00",
      "color" : "GREEN",
      "sku" : "SKUBEE",
      "asSubItem" : false,
      "customItemNameEnabled" : false,
      "pricingStrategy" : "PRICE_CANNOT_BE_CUSTOMIZED",
      "defaultTaxAmount" : "0.64",
      "productionInstructionList" : [ {
        "multiSelectionPermitted" : false,
        "productionInstructionGroupName" : "Cooking",
        "productionIntructionGroupId" : 123,
        "productionInstructionList" : [ {
          "instruction" : "Well Done",
          "ikentooModifierId" : 567
        }, {
          "instruction" : "Rear",
          "ikentooModifierId" : 568
        } ]
      } ],
      "taxIncludedInPrice" : true,
      "type" : "menuItem"
    } ],
    "type" : "group"
  }, {
    "@type" : "group",
    "name" : "Menu Group Deal Example",
    "color" : "BLUE",
    "menuEntry" : [ {
      "@type" : "menuDeal",
      "productName" : "Cheese Burger Deal",
      "productPrice" : "10.00",
      "color" : "BROWN",
      "sku" : "CBD1",
      "defaultTaxAmount" : "0.80",
      "menuDealGroups" : [ {
        "description" : "Drinks",
        "mustSelectAnItem" : true,
        "multiSelectionPermitted" : false,
        "items" : [ {
          "@type" : "menuItem",
          "productName" : "Sprite",
          "productPrice" : "0.00",
          "color" : "GREEN",
          "sku" : "SKU1",
          "asSubItem" : false,
          "customItemNameEnabled" : false,
          "defaultTaxAmount" : "0.00",
          "taxIncludedInPrice" : true,
          "type" : "menuItem"
        }, {
          "@type" : "menuItem",
          "productName" : "Coke",
          "productPrice" : "0.00",
          "color" : "RED",
          "sku" : "SKU2",
          "asSubItem" : false,
          "customItemNameEnabled" : false,
          "defaultTaxAmount" : "0.00",
          "taxIncludedInPrice" : true,
          "type" : "menuItem"
        } ]
      } ],
      "taxIncludedInPrice" : false,
      "type" : "menuDeal"
    } ],
    "type" : "group"
  } ],
  "richDataMissing" : false,
  "ikentooMenuId" : 123
}

Loading a list of production instructions for the Business Location

Load All Modifiers

GET /op/1/menu/modifiers

Path parameters

No parameters.

Query parameters

Parameter Type Optional Description

businessLocationId

Integer

false

Is the business location ID for the site within the business.

Request fields

No request body.

Response fields

Path Type Optional Description

[].multiSelectionPermitted

Boolean

true

Can more than one production instruction be selected for this group.

[].productionInstructionGroupName

String

true

The group name for this production instruction.

[].productionIntructionGroupId

Integer

true

The internal iKentoo ID for this production instruction group.

[].productionInstructionList

Array[Object]

true

An array of production instructions belonging to this group.

[].productionInstructionList[].instruction

String

true

The production instruction name as define by customer.

[].productionInstructionList[].ikentooModifierId

Integer

true

Internal iKentoo modifier ID to be used when placing an order through the API when selection this production instruction.

Example request

$ curl 'https://apiBaseEndpoint/op/1/menu/modifiers?businessLocationId=1' -i -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 301

[ {
  "multiSelectionPermitted" : false,
  "productionInstructionGroupName" : "Cooking",
  "productionIntructionGroupId" : 123,
  "productionInstructionList" : [ {
    "instruction" : "Well Done",
    "ikentooModifierId" : 567
  }, {
    "instruction" : "Rear",
    "ikentooModifierId" : 568
  } ]
} ]

Loading a list of discounts for the Business Location

Load All Discounts

GET /op/1/menu/discounts

Path parameters

No parameters.

Query parameters

Parameter Type Optional Description

businessLocationId

Integer

false

Is the business location ID for the site within the business.

Request fields

No request body.

Response fields

Path Type Optional Description

[].name

String

true

Discount name as setup in merchant account.

[].code

String

true

Discount code as setup in merchant account.

[].discountPercentage

Decimal

true

The discount percentage, may be fractional.

Example request

$ curl 'https://apiBaseEndpoint/op/1/menu/discounts?businessLocationId=1' -i -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 175

[ {
  "name" : "10 % Discount",
  "code" : "10PCT",
  "discountPercentage" : "10.00"
}, {
  "name" : "Staff Discount",
  "code" : "STAFF",
  "discountPercentage" : "15.00"
} ]

Lookup the check by table number

Check Lookup

GET /op/1/order/table/{tableNumber}/getCheck

Check open table (current day).

Path parameters

Parameter Type Optional Description

tableNumber

Integer

false

Table number for which to get the check.

Query parameters

Parameter Type Optional Description

businessLocationId

Integer

false

IKentoo business location ID.

Request fields

No request body.

Response fields

Path Type Optional Description

clientCount

Integer

true

Client count at table if value was provided.

uuid

String

true

Account/Check UUID.

openDate

String

true

Date this account/check was opened in UTC.

closeDate

String

true

Date this account/check was closed in UTC.

paidAmount

Decimal

true

The currently paid amount for this account/check.

name

String

true

Account/check name.

currentAmount

Decimal

true

Current total amount for the account/check.

staffName

String

true

Staff username owning this account/check.

staffId

Integer

true

Staff ID owning this account/check.

salesEntries

Array[Object]

true

List of check items.

salesEntries[].id

Integer

true

The iKentoo internal ID for this item.

salesEntries[].unitAmount

Decimal

true

The unit amount for a single item.

salesEntries[].quantity

Decimal

true

Quantity for this line.

salesEntries[].discountedAmount

Decimal

true

Discounted amount if any.

salesEntries[].active

Boolean

true

!! DEPRECATED !! This field is deprecated and will be removed in the future. Instead you will receive entries with negative quantities and amounts to indicate cancellations iKentoo customers must be running iKentoo Version 3 is this line valid (i.e. no cancelled).

salesEntries[].subLineItems

Array[Object]

true

Array of sub-lines.

salesEntries[].taxIncluded

Boolean

true

Is the tax included in the gross unit amount.

salesEntries[].itemName

String

true

Item name.

salesEntries[].itemSku

String

true

Item SKU.

salesEntries[].amountWithTax

Decimal

true

The total amount of this entry including Tax.

salesEntries[].amountLessTax

Decimal

true

The total amount of this entry excluding Tax.

salesEntries[].grossUnitAmount

Decimal

true

Ignore these field.

paymentEntries

Array[Object]

true

List of check payments.

paymentEntries[].paymentMethodCode

String

true

Payment method code for this payment line.

paymentEntries[].amountPaid

Decimal

true

Amount paid for this payment line.

paymentEntries[].active

Boolean

true

Whether this payment line is active or not (i.e. has been cancelled).

paymentEntries[].paymentMethodDescription

String

true

Payment method of this payment line.

paymentEntries[].paymentDate

String

true

Date/Time in UTC of this payment.

ikaccountId

String

true

Internal iKentoo account/check ID, can be used to make a payment.

tableNumber

Integer

true

Table number of this table has been assigned one.

posId

Integer

true

Internal ID of the POS owning this account/check.

Example request

$ curl 'https://apiBaseEndpoint/op/1/order/table/1/getCheck?businessLocationId=1234567' -i -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1518

{
  "clientCount" : 2,
  "uuid" : "75f68180-c952-11e7-9858-a396fd84e821",
  "openDate" : "2017-11-14T15:42:46.000+0000",
  "paidAmount" : "87.10",
  "name" : "Order FMGV, Table 1",
  "currentAmount" : "87.10",
  "staffName" : "testStaff-Pos",
  "staffId" : 942,
  "salesEntries" : [ {
    "id" : 46802258625104,
    "unitAmount" : "0.00",
    "quantity" : 1.0,
    "discountedAmount" : "0.00",
    "active" : true,
    "taxIncluded" : true,
    "itemName" : "Item text",
    "itemSku" : "FT1",
    "amountWithTax" : "0.00",
    "amountLessTax" : "0.00",
    "grossUnitAmount" : "0.00"
  }, {
    "id" : 46802258625108,
    "unitAmount" : "2.10",
    "quantity" : 1.0,
    "discountedAmount" : "0.00",
    "active" : true,
    "taxIncluded" : true,
    "itemName" : "Cappuccino",
    "itemSku" : "100",
    "amountWithTax" : "2.10",
    "amountLessTax" : "1.75",
    "grossUnitAmount" : "2.10"
  }, {
    "id" : 46802258625113,
    "unitAmount" : "85.00",
    "quantity" : 1.0,
    "discountedAmount" : "0.00",
    "active" : true,
    "taxIncluded" : true,
    "itemName" : "Albert Bichot Meursault 2013 - 750ml",
    "itemSku" : "5569",
    "amountWithTax" : "85.00",
    "amountLessTax" : "70.83",
    "grossUnitAmount" : "85.00"
  } ],
  "paymentEntries" : [ {
    "paymentMethodCode" : "CASH",
    "amountPaid" : "87.10",
    "active" : true,
    "paymentMethodDescription" : "Cash",
    "paymentDate" : "2017-11-14T15:53:27.000+0000"
  } ],
  "ikaccountId" : "A1232.23443",
  "tableNumber" : 1,
  "posId" : 2724
}

Lookup the check of all tables

Check Lookup Tables

GET /op/1/order/table/getCheck

Check all open tables (current day).

Path parameters

No parameters.

Query parameters

Parameter Type Optional Description

businessLocationId

Integer

false

IKentoo business location ID.

Request fields

No request body.

Response fields

Path Type Optional Description

[].clientCount

Integer

true

Client count at table if value was provided.

[].uuid

String

true

Account/Check UUID.

[].openDate

String

true

Date this account/check was opened in UTC.

[].closeDate

String

true

Date this account/check was closed in UTC.

[].paidAmount

Decimal

true

The currently paid amount for this account/check.

[].name

String

true

Account/check name.

[].currentAmount

Decimal

true

Current total amount for the account/check.

[].staffName

String

true

Staff username owning this account/check.

[].staffId

Integer

true

Staff ID owning this account/check.

[].salesEntries

Array[Object]

true

List of check items.

[].salesEntries[].id

Integer

true

The iKentoo internal ID for this item.

[].salesEntries[].unitAmount

Decimal

true

The unit amount for a single item.

[].salesEntries[].quantity

Decimal

true

Quantity for this line.

[].salesEntries[].discountedAmount

Decimal

true

Discounted amount if any.

[].salesEntries[].active

Boolean

true

!! DEPRECATED !! This field is deprecated and will be removed in the future. Instead you will receive entries with negative quantities and amounts to indicate cancellations iKentoo customers must be running iKentoo Version 3 is this line valid (i.e. no cancelled).

[].salesEntries[].subLineItems

Array[Object]

true

Array of sub-lines.

[].salesEntries[].taxIncluded

Boolean

true

Is the tax included in the gross unit amount.

[].salesEntries[].itemName

String

true

Item name.

[].salesEntries[].itemSku

String

true

Item SKU.

[].salesEntries[].amountWithTax

Decimal

true

The total amount of this entry including Tax.

[].salesEntries[].amountLessTax

Decimal

true

The total amount of this entry excluding Tax.

[].salesEntries[].grossUnitAmount

Decimal

true

Ignore these field.

[].paymentEntries

Array[Object]

true

List of check payments.

[].paymentEntries[].paymentMethodCode

String

true

Payment method code for this payment line.

[].paymentEntries[].amountPaid

Decimal

true

Amount paid for this payment line.

[].paymentEntries[].active

Boolean

true

Whether this payment line is active or not (i.e. has been cancelled).

[].paymentEntries[].paymentMethodDescription

String

true

Payment method of this payment line.

[].paymentEntries[].paymentDate

String

true

Date/Time in UTC of this payment.

[].ikaccountId

String

true

Internal iKentoo account/check ID, can be used to make a payment.

[].tableNumber

Integer

true

Table number of this table has been assigned one.

[].posId

Integer

true

Internal ID of the POS owning this account/check.

Example request

$ curl 'https://apiBaseEndpoint/op/1/order/table/getCheck?businessLocationId=1234567' -i -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 2555

[ {
  "clientCount" : 2,
  "uuid" : "75f68180-c952-11e7-9858-a396fd84e821",
  "openDate" : "2017-11-14T15:42:46.000+0000",
  "paidAmount" : "87.10",
  "name" : "Order FMGV, Table 1",
  "currentAmount" : "87.10",
  "staffName" : "testStaff-Pos",
  "staffId" : 942,
  "salesEntries" : [ {
    "id" : 46802258625104,
    "unitAmount" : "0.00",
    "quantity" : 1.0,
    "discountedAmount" : "0.00",
    "active" : true,
    "taxIncluded" : true,
    "itemName" : "Item text",
    "itemSku" : "FT1",
    "amountWithTax" : "0.00",
    "amountLessTax" : "0.00",
    "grossUnitAmount" : "0.00"
  }, {
    "id" : 46802258625108,
    "unitAmount" : "2.10",
    "quantity" : 1.0,
    "discountedAmount" : "0.00",
    "active" : true,
    "taxIncluded" : true,
    "itemName" : "Cappuccino",
    "itemSku" : "100",
    "amountWithTax" : "2.10",
    "amountLessTax" : "1.75",
    "grossUnitAmount" : "2.10"
  }, {
    "id" : 46802258625113,
    "unitAmount" : "85.00",
    "quantity" : 1.0,
    "discountedAmount" : "0.00",
    "active" : true,
    "taxIncluded" : true,
    "itemName" : "Albert Bichot Meursault 2013 - 750ml",
    "itemSku" : "5569",
    "amountWithTax" : "85.00",
    "amountLessTax" : "70.83",
    "grossUnitAmount" : "85.00"
  } ],
  "paymentEntries" : [ {
    "paymentMethodCode" : "CASH",
    "amountPaid" : "87.10",
    "active" : true,
    "paymentMethodDescription" : "Cash",
    "paymentDate" : "2017-11-14T15:53:27.000+0000"
  } ],
  "ikaccountId" : "A1232.23443",
  "tableNumber" : 1,
  "posId" : 2724
}, {
  "clientCount" : 2,
  "uuid" : "8ff23320-c954-11e7-9858-a396fd84e821",
  "openDate" : "2017-11-14T15:57:49.000+0000",
  "paidAmount" : "0.00",
  "name" : "Order LEAC, Table 1",
  "currentAmount" : "85.00",
  "staffName" : "testStaff-Pos",
  "staffId" : 942,
  "salesEntries" : [ {
    "id" : 46802258625137,
    "unitAmount" : "0.00",
    "quantity" : 1.0,
    "discountedAmount" : "0.00",
    "active" : true,
    "taxIncluded" : true,
    "itemName" : "Item text",
    "itemSku" : "FT1",
    "amountWithTax" : "0.00",
    "amountLessTax" : "0.00",
    "grossUnitAmount" : "0.00"
  }, {
    "id" : 46802258625140,
    "unitAmount" : "85.00",
    "quantity" : 1.0,
    "discountedAmount" : "0.00",
    "active" : true,
    "taxIncluded" : true,
    "itemName" : "Albert Bichot Meursault 2013 - 750ml",
    "itemSku" : "5569",
    "amountWithTax" : "85.00",
    "amountLessTax" : "70.83",
    "grossUnitAmount" : "85.00"
  } ],
  "paymentEntries" : [ ],
  "ikaccountId" : "46802258625135",
  "tableNumber" : 1,
  "posId" : 2724
} ]

Send a local order

Place Local Order

POST /op/1/order/local

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

Path Type Optional Description

businessLocationId

Integer

false

Business location ID of the business location to receive the order.

thirdPartyReference

String

false

A unique reference you provide for this order which will be sent back to you in the webhook.

endpointId

String

false

Endpoint ID for the webhook which you created via the iKentoo webhook endpoint API.

customerInfo

Object

true

Customer information object.

customerInfo.firstName

String

false

Firstname of the consumer attached to this order.

customerInfo.lastName

String

true

Lastname of the consumer attached to this order.

customerInfo.thirdPartyReference

String

true

Unique reference for this consumer which can help to identify him later on. If the email is left empty this should be left empty as well.

customerInfo.email

String

true

Email address for this consumer, if you dont have something it MUST be left empty.

Must be a well-formed email address.

customerInfo.contactNumberAsE164

String

true

Contact phone number in E164 format.

customerInfo.notes

String

true

Notes attached to this consumer record.

customerInfo.salutation

String

true

Salutation Mr. or Mrs. etc…​.

orderNote

String

true

A note added to this order and displayed on the printed dockets.

maxTimeToAttemptOrderDeliverToPos

Integer

true

Strongly recommended to use! Max time to try and deliver this order to the POS in milliseconds. If field scheduledTimeForOrderAsIso8601 is used, this value will be added to it to define the max time after which the task will fail. The minimum value is 60000.

staffId

Integer

true

accountProfileCode

String

true

An valid account profile code as setup for this business location Typically something like DELIVERY or PICKUP.

scheduledTimeForOrderAsIso8601

String

true

The order will be held back by our servers until this time has elapsed after which it will be sent to the POS.

Must be in the future.

payment

Object

true

Payment object.

payment.paymentMethod

String

true

Payment method code as setup in the customers account.

payment.paymentAmount

Decimal

false

The total amount represented by this payment.

payment.tipAmount

Decimal

true

The tips portion of this payment, if any.

payment.min_TTL

Integer

true

accountId

String

true

IKentoo account ID for this local order if not using the table number (old format for iKentoo V2, eg 12345678). Use accountIdentifier in V3.

accountIdentifier

String

true

IKentoo account ID for this local order if not using the table number (iKentoo V3 format, eg. A1234.56) You do not need to use both the accountId and accountIdentifier, simply use one or the other. If the POS is running iKentoo V2 you will typically use the accountId which is a Long.

tableNumber

String

true

Table number for this local order if not using the account ID.

Must have at most 5 integral digits and 0 fractional digits.

clientCount

Integer

true

Number of customers consuming food at the table for this order.

Must have at most 3 integral digits and 0 fractional digits.

items

Array[Object]

true

Array of items to be ordered.

items[].quantity

Integer

true

Quantity of item to be ordered.

items[].sku

String

false

SKU of item to be ordered.

items[].customItemName

String

true

If name overriding is possible then use this name for the item.

items[].customItemPrice

Decimal

true

If custom pricing is possible based on the items pricing strategy, then use this value.

items[].modifiers

Array[Object]

true

List of modifiers to be applied to this item.

items[].modifiers[].modifierId

String

true

Modifier id to be applied to this order, checkout the modifier endpoint of the API to get a valid list.

items[].discountCode

String

true

IKentoo discount code applied to this item in the order.

items[].course

Integer

true

The course number to which to add this item.

items[].subItems

Array[Object]

true

Array of subitems applied to this item.

items[].subItems[].quantity

Integer

true

Quantity of item to be ordered.

items[].subItems[].sku

String

false

SKU of item to be ordered.

items[].subItems[].customItemName

String

true

If name overriding is possible then use this name for the item.

items[].subItems[].customItemPrice

Decimal

true

If custom pricing is possible based on the items pricing strategy, then use this value.

items[].subItems[].modifiers

Array[Object]

true

List of modifiers to be applied to this item.

items[].subItems[].modifiers[].modifierId

String

true

Modifier id to be applied to this order, checkout the modifier endpoint of the API to get a valid list.

min_TTL

Integer

true

Response fields

No response body.

Example request

$ curl 'https://apiBaseEndpoint/op/1/order/local' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "businessLocationId" : 123,
  "thirdPartyReference" : "REF1234",
  "endpointId" : "ENDPOINT",
  "customerInfo" : {
    "firstName" : "Hike",
    "lastName" : "Entoo",
    "thirdPartyReference" : "3rdPartyRef",
    "email" : "hike.entoo@ikentoo.com",
    "notes" : "Some notes"
  },
  "orderNote" : "order note",
  "tableNumber" : "10",
  "clientCount" : 2,
  "items" : [ {
    "quantity" : 2,
    "sku" : "11",
    "discountCode" : "10PCT"
  } ],
  "min_TTL" : 60000
}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 21

{
  "status" : "ok"
}

Send an order for Delivery or Pickup

Place To Go Order

POST /op/1/order/toGo

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

Path Type Optional Description

businessLocationId

Integer

false

Business location ID of the business location to receive the order.

thirdPartyReference

String

false

A unique reference you provide for this order which will be sent back to you in the webhook.

endpointId

String

false

Endpoint ID for the webhook which you created via the iKentoo webhook endpoint API.

customerInfo

Object

true

Customer information object.

customerInfo.firstName

String

false

Firstname of the consumer attached to this order.

customerInfo.lastName

String

true

Lastname of the consumer attached to this order.

customerInfo.thirdPartyReference

String

true

Unique reference for this consumer which can help to identify him later on. If the email is left empty this should be left empty as well.

customerInfo.email

String

true

Email address for this consumer, if you dont have something it MUST be left empty.

Must be a well-formed email address.

customerInfo.contactNumberAsE164

String

true

Contact phone number in E164 format.

customerInfo.notes

String

true

Notes attached to this consumer record.

customerInfo.salutation

String

true

Salutation Mr. or Mrs. etc…​.

orderNote

String

true

A note added to this order and displayed on the printed dockets.

maxTimeToAttemptOrderDeliverToPos

Integer

true

Strongly recommended to use! Max time to try and deliver this order to the POS in milliseconds. If field scheduledTimeForOrderAsIso8601 is used, this value will be added to it to define the max time after which the task will fail. The minimum value is 60000.

staffId

Integer

true

accountProfileCode

String

true

An valid account profile code as setup for this business location Typically something like DELIVERY or PICKUP.

scheduledTimeForOrderAsIso8601

String

true

The order will be held back by our servers until this time has elapsed after which it will be sent to the POS.

Must be in the future.

payment

Object

true

Payment object.

payment.paymentMethod

String

true

Payment method code as setup in the customers account.

payment.paymentAmount

Decimal

false

The total amount represented by this payment.

payment.tipAmount

Decimal

true

The tips portion of this payment, if any.

payment.min_TTL

Integer

true

collectionCode

String

true

Unique collection code for this order, one will be provided if left blank.

orderCollectionTimeAsIso8601

String

true

Must be in the future.

items

Array[Object]

true

Array of items in the order.

items[].quantity

Integer

true

Quantity of item to be ordered.

items[].sku

String

false

SKU of item to be ordered.

items[].customItemName

String

true

If name overriding is possible then use this name for the item.

items[].customItemPrice

Decimal

true

If custom pricing is possible based on the items pricing strategy, then use this value.

items[].modifiers

Array[Object]

true

List of modifiers to be applied to this item.

items[].modifiers[].modifierId

String

true

Modifier id to be applied to this order, checkout the modifier endpoint of the API to get a valid list.

items[].discountCode

String

true

IKentoo discount code applied to this item in the order.

items[].subItems

Array[Object]

true

Array of subitems applied to this item.

items[].subItems[].quantity

Integer

true

Quantity of item to be ordered.

items[].subItems[].sku

String

false

SKU of item to be ordered.

items[].subItems[].customItemName

String

true

If name overriding is possible then use this name for the item.

items[].subItems[].customItemPrice

Decimal

true

If custom pricing is possible based on the items pricing strategy, then use this value.

items[].subItems[].modifiers

Array[Object]

true

List of modifiers to be applied to this item.

items[].subItems[].modifiers[].modifierId

String

true

Modifier id to be applied to this order, checkout the modifier endpoint of the API to get a valid list.

takeAway

Boolean

true

Boolean flag indicating if this is takeaway.

deliveryAddress

Object

true

Address to be used for deliveries.

deliveryAddress.addressLine1

String

true

Delivery address Line 1.

deliveryAddress.addressLine2

String

true

Delivery address Line 2.

deliveryAddress.zip

String

true

Delivery Zip code.

deliveryAddress.city

String

true

Delivery City.

min_TTL

Integer

true

Response fields

No response body.

Example request

$ curl 'https://apiBaseEndpoint/op/1/order/toGo' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "businessLocationId" : 123,
  "thirdPartyReference" : "ORDER-REF-123",
  "endpointId" : "ENDPOINT",
  "customerInfo" : {
    "firstName" : "Hike",
    "lastName" : "Entoo",
    "thirdPartyReference" : "3rdPartyRef",
    "email" : "hike.entoo@ikentoo.com",
    "notes" : "Some notes"
  },
  "collectionCode" : "ABC",
  "items" : [ {
    "quantity" : 2,
    "sku" : "12"
  } ],
  "takeAway" : false,
  "deliveryAddress" : {
    "addressLine1" : "Route des Jeunes 5",
    "addressLine2" : "Second floor",
    "zip" : "1227",
    "city" : "Les Acacias"
  },
  "min_TTL" : 60000
}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 21

{
  "status" : "ok"
}

Send a payment for a bill

Make Payment

POST /op/1/pay

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

Path Type Optional Description

paymentMethod

String

true

Payment method code as setup in the customers account.

paymentAmount

Decimal

false

The total amount represented by this payment.

tipAmount

Decimal

true

The tips portion of this payment, if any.

thirdPartyPaymentReference

String

false

Unique third party reference for this payment, you will receive this reference back as part of our webhook callback.

endpointId

String

false

Endpoint ID for the webhook which you created via the iKentoo webhook endpoint API.

businessLocationId

Integer

false

Business location ID of the business location to receive the order.

taskTtlInMs

Integer

true

Time in ms for this payment to be delivered to the POS. After this time it will no longer be delivered and considered failed Minimum value is 60000.

staffId

Integer

true

IKentoo Staff ID used to impersonate this payment in the POS.

deviceId

Integer

true

IKentoo POS device to specifically receive this payment. If left null then all POS devices may receive the payment but only one will process it.

ikaccountId

Integer

true

IKentoo account ID for this payment. V2 format (eg 12345678).

ikaccountIdentifier

String

true

IKentoo account identifier (V3 format, eg. A1234.56).

min_TTL

Integer

true

Response fields

No response body.

Example request

$ curl 'https://apiBaseEndpoint/op/1/pay' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "paymentMethod" : null,
  "paymentAmount" : "12.34",
  "tipAmount" : null,
  "thirdPartyPaymentReference" : "3RDPARTYREF",
  "endpointId" : "ENDPOINTID",
  "businessLocationId" : 676,
  "taskTtlInMs" : 60000,
  "staffId" : null,
  "deviceId" : null,
  "ikaccountId" : null,
  "ikaccountIdentifier" : "A1234.56",
  "min_TTL" : 60000
}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 21

{
  "status" : "ok"
}

Send message to till and receipt printer

Print To Receipt Printer

POST /op/1/printMsg

Prints a message to the till and receipt printer which processed the order. If the order was not processed then prints to the tills configured to receive online orders.

Path parameters

No parameters.

Query parameters

Parameter Type Optional Description

businessLocationId

Integer

false

Business Location ID.

Request fields

Path Type Optional Description

message

String

false

Message to be printed.

alsoToPrinter

Boolean

true

Print the message on the receipt printer as well as till, highly recommended.

thirdPartyReference

String

true

If you provide this value the message will be printed to the same POS and printer which processed this online order Otherwise it will go to the first POS on a first come first serve basis.

Response fields

No response body.

Example request

$ curl 'https://apiBaseEndpoint/op/1/printMsg?businessLocationId=12345' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "message" : "Hello",
  "alsoToPrinter" : true
}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 21

{
  "status" : "ok"
}

Webhook Management

Register Webhook Endpoint

PUT /wh/1/webhook

Create a new webhook entry.

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

Path Type Optional Description

endpointId

String

false

ID for this endpoint entry.

url

String

false

URL which this endpoint points to.

withBasicAuth

Boolean

true

Use basic auth when hitting the endpoint.

username

String

true

Username to use if basic auth is enabled.

password

String

true

Password to use if basic auth is enabled.

Response fields

Path Type Optional Description

endpointId

String

false

ID for this endpoint entry.

url

String

false

URL which this endpoint points to.

withBasicAuth

Boolean

true

Use basic auth when hitting the endpoint.

username

String

true

Username to use if basic auth is enabled.

password

String

true

Password to use if basic auth is enabled.

Example request

$ curl 'https://apiBaseEndpoint/wh/1/webhook' -i -X PUT -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "endpointId" : "TEST",
  "url" : "http://localhost/cb",
  "withBasicAuth" : false,
  "username" : null,
  "password" : null
}'

Example response

HTTP/1.1 200 OK

Update Webhook Endpoint

POST /wh/1/webhook

Update an exiting webhook entry with a new endpoint URL.

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

Path Type Optional Description

endpointId

String

false

ID for this endpoint entry.

url

String

false

URL which this endpoint points to.

withBasicAuth

Boolean

true

Use basic auth when hitting the endpoint.

username

String

true

Username to use if basic auth is enabled.

password

String

true

Password to use if basic auth is enabled.

Response fields

Path Type Optional Description

endpointId

String

false

ID for this endpoint entry.

url

String

false

URL which this endpoint points to.

withBasicAuth

Boolean

true

Use basic auth when hitting the endpoint.

username

String

true

Username to use if basic auth is enabled.

password

String

true

Password to use if basic auth is enabled.

Example request

$ curl 'https://apiBaseEndpoint/wh/1/webhook' -i -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
  "endpointId" : "TEST",
  "url" : "http://localhost/cb",
  "withBasicAuth" : false,
  "username" : null,
  "password" : null
}'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 129

{
  "endpointId" : "TEST",
  "url" : "http://localhost/cb",
  "withBasicAuth" : false,
  "username" : null,
  "password" : null
}

Get Webhook Endpoint

GET /wh/1/webhook/{endpointId}

Retrieve the webhook object with the given ID.

Path parameters

Parameter Type Optional Description

endpointId

String

false

Endpoint ID to retrieve.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Optional Description

endpointId

String

false

ID for this endpoint entry.

url

String

false

URL which this endpoint points to.

withBasicAuth

Boolean

true

Use basic auth when hitting the endpoint.

username

String

true

Username to use if basic auth is enabled.

password

String

true

Password to use if basic auth is enabled.

Example request

$ curl 'https://apiBaseEndpoint/wh/1/webhook/TEST' -i -H 'Content-Type: application/json' -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 143

{
  "endpointId" : "TEST",
  "url" : "https://myCompany.com/callback",
  "withBasicAuth" : true,
  "username" : "usr",
  "password" : "*****"
}

Webhook callbacks examples

Example Success Payment Callback

Example of what your webhook implementation will receive for a SUCCESS payment.

Request content

{
  "status" : "SUCCESS",
  "thirdPartyReference" : "YourReference",
  "ikentooAccountId" : 1234567
}

Request fields

Path Type Optional Description

status

String

true

Status of the order or payment operation.

Must be one of [SUCCESS, FAILURE, READY_FOR_PICKUP, CLOSED, CHECK_WAS_UPDATED].

reason

String

true

Reason for failure if there is one.

thirdPartyReference

String

true

Third-party reference you provided when the order or payment was placed.

ikentooAccountId

Integer

true

The subsequent iKentoo Account ID for a SUCCESS event (old format).

ikentooAccountIdentifier

String

true

The subsequent iKentoo Account identifier for a SUCCESS event (V3 format).

Example Failed Payment Callback

Example of what your webhook implementation will receive for a FAILURE payment.

Request content

{
  "status" : "FAILURE",
  "reason" : "fail reason",
  "thirdPartyReference" : "YourReference"
}

Request fields

Path Type Optional Description

status

String

true

Status of the order or payment operation.

Must be one of [SUCCESS, FAILURE, READY_FOR_PICKUP, CLOSED, CHECK_WAS_UPDATED].

reason

String

true

Reason for failure if there is one.

thirdPartyReference

String

true

Third-party reference you provided when the order or payment was placed.

ikentooAccountId

Integer

true

The subsequent iKentoo Account ID for a SUCCESS event (old format).

ikentooAccountIdentifier

String

true

The subsequent iKentoo Account identifier for a SUCCESS event (V3 format).

Example Success Payment Callback

Example of what your webhook implementation will receive for a SUCCESS payment.

Request content

{
  "status" : "SUCCESS",
  "thirdPartyReference" : "YourReference",
  "ikentooAccountId" : 1234567
}

Request fields

Path Type Optional Description

status

String

true

Status of the order or payment operation.

Must be one of [SUCCESS, FAILURE, READY_FOR_PICKUP, CLOSED, CHECK_WAS_UPDATED].

reason

String

true

Reason for failure if there is one.

thirdPartyReference

String

true

Third-party reference you provided when the order or payment was placed.

ikentooAccountId

Integer

true

The subsequent iKentoo Account ID for a SUCCESS event (old format).

ikentooAccountIdentifier

String

true

The subsequent iKentoo Account identifier for a SUCCESS event (V3 format).

Example Failed Payment Callback

Example of what your webhook implementation will receive for a FAILURE payment.

Request content

{
  "status" : "FAILURE",
  "reason" : "fail reason",
  "thirdPartyReference" : "YourReference",
  "ikentooAccountId" : 1234567
}

Request fields

Path Type Optional Description

status

String

true

Status of the order or payment operation.

Must be one of [SUCCESS, FAILURE, READY_FOR_PICKUP, CLOSED, CHECK_WAS_UPDATED].

reason

String

true

Reason for failure if there is one.

thirdPartyReference

String

true

Third-party reference you provided when the order or payment was placed.

ikentooAccountId

Integer

true

The subsequent iKentoo Account ID for a SUCCESS event (old format).

ikentooAccountIdentifier

String

true

The subsequent iKentoo Account identifier for a SUCCESS event (V3 format).