iKentoo API documentation

Reservation REST Service API Guide

Data resources

Get businesses data

Lookup Businesses

GET /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/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
  } ]
} ]

Webhook resources

Register a webhook

Register Webhook Endpoint

PUT /wh/1/webhook

Register a new webhook endpoint.

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

Path Type Optional Description

endpointId

String

false

The unique endpoint ID for example you can use your company name.

url

String

false

The endpoint URL.

withBasicAuth

Boolean

true

If basic auth should be used, defaults to false.

username

String

true

The username for basic auth.

password

String

true

The password for basic auth.

Response fields

Path Type Optional Description

endpointId

String

false

The unique endpoint ID for example you can use your company name.

url

String

false

The endpoint URL.

withBasicAuth

Boolean

true

If basic auth should be used, defaults to false.

username

String

true

The username for basic auth.

password

String

true

The password for basic auth.

Example request

$ curl 'https://apiBaseEndpoint/wh/1/webhook' -i -X PUT -H 'Content-Type: application/json;charset=UTF-8' -d '{
  "endpointId" : "CompanyNCo",
  "url" : "http://companyInc.com/webhook",
  "withBasicAuth" : true,
  "username" : "usr",
  "password" : "secretPwd"
}'

Example response

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

{
  "endpointId" : "CompanyNCo",
  "url" : "http://companyInc.com/webhook",
  "withBasicAuth" : true,
  "username" : "usr",
  "password" : "secretPwd"
}

Update a webhook

Update Webhook Endpoint

POST /wh/1/webhook

Update an existing wehbhook endpoint.

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

Path Type Optional Description

endpointId

String

false

The unique endpoint ID for example you can use your company name.

url

String

false

The endpoint URL.

withBasicAuth

Boolean

true

If basic auth should be used, defaults to false.

username

String

true

The username for basic auth.

password

String

true

The password for basic auth.

Response fields

Path Type Optional Description

endpointId

String

false

The unique endpoint ID for example you can use your company name.

url

String

false

The endpoint URL.

withBasicAuth

Boolean

true

If basic auth should be used, defaults to false.

username

String

true

The username for basic auth.

password

String

true

The password for basic auth.

Example request

$ curl 'https://apiBaseEndpoint/wh/1/webhook' -i -X POST -H 'Content-Type: application/json;charset=UTF-8' -d '{
  "endpointId" : "companyInc",
  "url" : "https://companyNco.com/webHook",
  "withBasicAuth" : true,
  "username" : "usr2",
  "password" : "veryVerySecretPwd"
}'

Example response

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

{
  "endpointId" : "companyInc",
  "url" : "https://companyNco.com/webHook",
  "withBasicAuth" : true,
  "username" : "usr2",
  "password" : "veryVerySecretPwd"
}

Get a webhook

Get Webhook Endpoint

GET /wh/1/webhook/{endpointId}

Get an existing webhook endpoint.

Path parameters

Parameter Type Optional Description

endpointId

String

false

The endpoint id to get.

Query parameters

No parameters.

Request fields

No request body.

Response fields

Path Type Optional Description

endpointId

String

false

The unique endpoint ID for example you can use your company name.

url

String

false

The endpoint URL.

withBasicAuth

Boolean

true

If basic auth should be used, defaults to false.

username

String

true

The username for basic auth.

password

String

true

The password for basic auth.

Example request

$ curl 'https://apiBaseEndpoint/wh/1/webhook/companyInc' -i

Example response

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

{
  "endpointId" : "companyInc",
  "url" : "https://companyNco.com/webhook",
  "withBasicAuth" : true,
  "username" : "usr",
  "password" : "verySecretPwd"
}

Reservation resources

Check in

Checkin

POST /reservation/1/checkin

Assign a reservation to a table.

Path parameters

No parameters.

Query parameters

No parameters.

Request fields

Path Type Optional Description

businessLocationId

Integer

false

Business Location ID as defined in iKentoo.

table

String

false

Table name or number.

reservationReference

String

false

Unique ID for you to tie the callback events to this action.

customerCount

Integer

true

Number of seats for the reservation.

notes

Array[Object]

true

An Array of notes.

notes[].note

String

true

A note to add to the reservation.

specialOffer

String

true

Deprecated - use notes instead.

customerInfo

Object

true

Basic customer information.

customerInfo.firstName

String

false

First name.

customerInfo.lastName

String

true

Last name.

customerInfo.thirdPartyReference

String

false

Unique ID for you to tie this customer record back to yours.

customerInfo.email

String

false

Customer email.

customerInfo.contactNumberAsE164

String

true

Contact number formatted in E164.

customerInfo.notes

String

true

Customer notes.

endPointId

String

false

Identifies the previously registered endpoint to use for Webhook notifications.

Response fields

Path Type Optional Description

error

Boolean

true

Indicates if there is an error.

errorMessage

String

true

The error message.

responseEntity

Var

true

A JSON object representing the response data.

Example request

$ curl 'https://apiBaseEndpoint/reservation/1/checkin' -i -X POST -H 'Content-Type: application/json;charset=UTF-8' -d '{
  "businessLocationId" : 1234567,
  "table" : "123",
  "reservationReference" : "ref-12345",
  "customerCount" : 76543,
  "notes" : [ {
    "note" : "Note 1"
  }, {
    "note" : "Note 2"
  } ],
  "specialOffer" : null,
  "customerInfo" : {
    "firstName" : "Ik",
    "lastName" : "Entoo",
    "thirdPartyReference" : "3-09io",
    "email" : "customer@ikentoo.com",
    "contactNumberAsE164" : "+41.227004545",
    "notes" : "Notes"
  },
  "endPointId" : "companyInc"
}'

Example response

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

{
  "error" : false,
  "errorMessage" : "",
  "responseEntity" : null
}

Configuration resources

Add configuration

Configure Business Integration

POST /configuration/1/{provider}

Configure an integration with a reservation platform.

Path parameters

Parameter Type Optional Description

provider

Object

false

Provider of the reservation system.

Query parameters

No parameters.

Request fields

Path Type Optional Description

businessLocationId

Integer

true

ID of the business location.

restaurantId

String

true

ID of the restaurant in the reservation system.

apiKey

String

true

API key to call reservation system provider API.

Response fields

No response body.

Example request

$ curl 'https://apiBaseEndpoint/configuration/1/aleno' -i -X POST -H 'Content-Type: application/json;charset=UTF-8' -H 'Accept: application/json' -d '{
  "businessLocationId" : 123456789,
  "restaurantId" : "R5mscHonzt4QAGWTH",
  "apiKey" : "an-aleno-api-key"
}'

Example response

HTTP/1.1 200 OK

Delete configuration

Delete Configuration

DELETE /configuration/1/{provider}

Path parameters

Parameter Type Optional Description

provider

Object

false

Query parameters

Parameter Type Optional Description

businessLocationId

Integer

false

Request fields

No request body.

Response fields

No response body.

Example request

$ curl 'https://apiBaseEndpoint/configuration/1/aleno' -i -X DELETE -H 'Accept: application/json'

Example response

HTTP/1.1 200 OK

Webhook callbacks examples

Example Accepted Webhook

Example of what your webhook implementation will receive for a ACCEPTED event.

Request content

{
  "notificationTime" : "2019-01-17T15:23:26.485+0000",
  "notificationId" : "51a15413-ffb6-4822-90ec-a21bbead5b02",
  "notificationType" : "ACCEPTED",
  "reservationReference" : "ref",
  "tableDescription" : null,
  "table" : null,
  "accountId" : 12345678,
  "message" : null
}

Request fields

Path Type Optional Description

notificationTime

String

true

notificationId

String

true

Unique ID of this webhook call.

notificationType

String

true

Notification Type.

Must be one of [ACCEPTED, CHECKEDIN, CHECKEDOUT, CANCELLED, TABLE_STATUS_UPDATE, OPERATION_FAILED].

reservationReference

String

true

tableDescription

String

true

Rich table description.

table

Decimal

true

Table Number.

accountId

Integer

true

IKentoo internal account ID.

message

String

true

Example Checked In Webhook

Example of what your webhook implementation will receive for a CHECKEDIN event.

Request content

{
  "notificationTime" : "2019-01-17T15:23:26.432+0000",
  "notificationId" : "7b8ca08a-f72e-4562-9a35-0dc6b545aaa3",
  "notificationType" : "CHECKEDIN",
  "reservationReference" : "ref",
  "tableDescription" : "Table 2",
  "table" : 2.0,
  "accountId" : 12345678,
  "message" : null
}

Request fields

Path Type Optional Description

notificationTime

String

true

notificationId

String

true

Unique ID of this webhook call.

notificationType

String

true

Notification Type.

Must be one of [ACCEPTED, CHECKEDIN, CHECKEDOUT, CANCELLED, TABLE_STATUS_UPDATE, OPERATION_FAILED].

reservationReference

String

true

tableDescription

String

true

Rich table description.

table

Decimal

true

Table Number.

accountId

Integer

true

IKentoo internal account ID.

message

String

true

Example Checked Out Webhook

Example of what your webhook implementation will receive for a CHECKEDOUT event.

Request content

{
  "notificationTime" : "2019-01-17T15:23:26.363+0000",
  "notificationId" : "115e464c-0d1c-42c8-84df-c78f88da7cd9",
  "notificationType" : "CHECKEDOUT",
  "reservationReference" : "ref",
  "tableDescription" : "table description",
  "table" : 2.0,
  "accountId" : 123456,
  "notificationPayload" : {
    "checkoutDate" : "2019-01-17T15:23:26.363+0000",
    "items" : [ {
      "name" : "Steak",
      "quantity" : 2.0,
      "paidAmountTaxIncl" : 70,
      "itemGroup" : "Food",
      "paidAmountTaxExcl" : 64.81
    }, {
      "name" : "Cheesecake",
      "quantity" : 2.0,
      "paidAmountTaxIncl" : 35.19,
      "itemGroup" : "Food",
      "paidAmountTaxExcl" : null
    } ],
    "checkTotalExclTax" : 100,
    "checkTotalInclTax" : 108,
    "checkTotalTaxAmount" : 8,
    "currency" : "CHF",
    "tips" : 0,
    "coverCount" : 2
  }
}

Request fields

Path Type Optional Description

notificationTime

String

true

notificationId

String

true

Unique ID of this webhook call.

notificationType

String

true

Notification Type.

Must be one of [ACCEPTED, CHECKEDIN, CHECKEDOUT, CANCELLED, TABLE_STATUS_UPDATE, OPERATION_FAILED].

reservationReference

String

true

tableDescription

String

true

Rich table description.

table

Decimal

true

Table Number.

accountId

Integer

true

IKentoo internal account ID.

notificationPayload

Object

true

Checkout notification payload, will be EMPTY for accounts which have not been linked to reservation system.

notificationPayload.checkoutDate

String

true

The checkout date.

notificationPayload.items

Array[Object]

true

Line items.

notificationPayload.items[].name

String

true

Item name.

notificationPayload.items[].quantity

Decimal

true

Item quantity.

notificationPayload.items[].paidAmountTaxIncl

Decimal

true

The paid amount including taxes.

notificationPayload.items[].itemGroup

String

true

The group this item belongs to.

notificationPayload.items[].paidAmountTaxExcl

Decimal

true

notificationPayload.checkTotalExclTax

Decimal

true

Total amount of bill exclusing Tax.

notificationPayload.checkTotalInclTax

Decimal

true

Total amount of bill including Tax.

notificationPayload.checkTotalTaxAmount

Decimal

true

Total Tax amount of bill.

notificationPayload.currency

String

true

The currency ISO code.

notificationPayload.tips

Decimal

true

Total tips amount if enabled for customer.

notificationPayload.coverCount

Integer

true

Number of covers served if defined by the customer.

Example Failed Webhook

Example of what your webhook implementation will receive for a OPERATION_FAILED event.

Request content

{
  "notificationTime" : "2019-01-17T15:23:26.460+0000",
  "notificationId" : "a98da56e-e59c-4c3c-b2e0-596fc7de58c8",
  "notificationType" : "OPERATION_FAILED",
  "reservationReference" : "ref",
  "tableDescription" : null,
  "table" : null,
  "accountId" : null,
  "message" : "fail message"
}

Request fields

Path Type Optional Description

notificationTime

String

true

notificationId

String

true

Unique ID of this webhook call.

notificationType

String

true

Notification Type.

Must be one of [ACCEPTED, CHECKEDIN, CHECKEDOUT, CANCELLED, TABLE_STATUS_UPDATE, OPERATION_FAILED].

reservationReference

String

true

tableDescription

String

true

Rich table description.

table

Decimal

true

Table Number.

accountId

Integer

true

IKentoo internal account ID.

message

String

true