Tabless API (1.0.0)

Download OpenAPI specification:Download

This API provides access to the Tabless system, facilitating integration with various services for order management, driver coordination, and more.

Order Webhook Events Webhook

Webhook to handle Order status updates.

Your service should POST a 200 response status code with an empty response body to acknowledge receipt of the webhook event. If no acknowledgement is received, TabLess will continue to retry the webhook according to the retry logic described below.

If TabLess receives either of 500, 502, 503, 504 status codes, timeout or any network error, the webhook event will be retried. The first retry will be sent 10 seconds after the initial event. The following events will be resent based on an exponential backoff algorithm, starting at 30 seconds after the 10s retry, then again after 60 seconds, then after 120 seconds, and so on until a response is received or until 7 total events were sent without a response.

Request Body schema: application/json
event_type
required
string
Enum: "NEW" "UPDATED"
  • NEW - New order is found.
  • UPDATED - Order update occurred
required
object (OrderDetails)
timestamp
required
string <date-time>

Responses

Request samples

Content type
application/json
Example
{
  • "type": "client_error",
  • "errors": [
    ]
}

Integration Webhook Events Webhook

Webhook to handle integration status updates.

Your service should POST a 200 response status code with an empty response body to acknowledge receipt of the webhook event. If no acknowledgement is received, TabLess will continue to retry the webhook according to the retry logic described below.

If TabLess receives either of 500, 502, 503, 504 status codes, timeout or any network error, the webhook event will be retried. The first retry will be sent 10 seconds after the initial event. The following events will be resent based on an exponential backoff algorithm, starting at 30 seconds after the 10s retry, then again after 60 seconds, then after 120 seconds, and so on until a response is received or until 7 total events were sent without a response.

Request Body schema: application/json
event_type
required
string
Value: "UPDATED"
  • UPDATED - Integration update occurred.
sub_event_type
required
string
Enum: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "13"
  • 0 - Closed for Orders
  • 1 - Accepting Orders
  • 2 - Orders Paused
  • 3 - No Activity
  • 4 - Something Wrong
  • 5 - Unauthorized User
  • 6 - Deactivated
  • 7 - Connecting
  • 8 - Restarting
  • 9 - Company Paused
  • 10 - Sleeping
  • 11 - Unknown Error
  • 13 - Location Deactivated
integration_id
required
string <uuid>
timestamp
required
string <date-time>
reason
string

Responses

Request samples

Content type
application/json
Example
{
  • "type": "client_error",
  • "errors": [
    ]
}

Menu Publish Webhook Events Webhook

Webhook to handle Menu Publish updates.

Your service should POST a 200 response status code with an empty response body to acknowledge receipt of the webhook event. If no acknowledgement is received, TabLess will continue to retry the webhook according to the retry logic described below.

If TabLess receives either of 500, 502, 503, 504 status codes, timeout or any network error, the webhook event will be retried. The first retry will be sent 10 seconds after the initial event. The following events will be resent based on an exponential backoff algorithm, starting at 30 seconds after the 10s retry, then again after 60 seconds, then after 120 seconds, and so on until a response is received or until 7 total events were sent without a response.

Request Body schema: application/json
restaurant_id
required
string <uuid>

Restaurant ID for which this menu belongs.

integration_id
required
string <uuid>

Integration ID for which operation occured.

event_type
required
string
Enum: "SUCCESS" "FAILED"
  • SUCCESS - Menu Pushed successfully.
  • FAILED - Menu Push Failed.
timestamp
required
string <date-time>
errors
required
any

list of errors returned from providers.

Responses

Request samples

Content type
application/json
Example
{
  • "type": "client_error",
  • "errors": [
    ]
}

Menu Availability Webhook Events Webhook

Webhook to handle Menu Availability updates.

Your service should POST a 200 response status code with an empty response body to acknowledge receipt of the webhook event. If no acknowledgement is received, TabLess will continue to retry the webhook according to the retry logic described below.

If TabLess receives either of 500, 502, 503, 504 status codes, timeout or any network error, the webhook event will be retried. The first retry will be sent 10 seconds after the initial event. The following events will be resent based on an exponential backoff algorithm, starting at 30 seconds after the 10s retry, then again after 60 seconds, then after 120 seconds, and so on until a response is received or until 7 total events were sent without a response.

Request Body schema: application/json
restaurant_id
required
string <uuid>

Restaurant ID for which this menu belongs.

integration_id
required
string <uuid>

Integration ID for which operation occured.

required
Array of objects (ItemAvailabilityEvent)
timestamp
required
string <date-time>
errors
required
any

list of errors returned from providers.

Responses

Request samples

Content type
application/json
Example
{
  • "type": "client_error",
  • "errors": [
    ]
}

brand

list

Retrieve a list of all brands.

Authorizations:
tokenAuth
query Parameters
cursor
string

The pagination cursor value.

Responses

Response samples

Content type
application/json
{}

create

Create a new brand.

Authorizations:
tokenAuth
Request Body schema:
name
required
string <= 100 characters

name of the brand

logo
string or null <uri> <= 255 characters

url of brand logo

website
string or null <= 1000 characters

website of brand

Responses

Request samples

Content type
{}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "name": "string",
  • "website": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

retrieve

Retrieve a single brand by ID.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

A UUID string identifying this Brand.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "name": "string",
  • "website": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

update

Update an existing brand.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

A UUID string identifying this Brand.

Request Body schema:
name
required
string <= 100 characters

name of the brand

logo
string or null <uri> <= 255 characters

url of brand logo

website
string or null <= 1000 characters

website of brand

Responses

Request samples

Content type
{}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "name": "string",
  • "website": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

partial update

Partially update an existing brand.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

A UUID string identifying this Brand.

Request Body schema:
name
string <= 100 characters

name of the brand

logo
string or null <uri> <= 255 characters

url of brand logo

website
string or null <= 1000 characters

website of brand

Responses

Request samples

Content type
{}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "name": "string",
  • "website": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

integration

list

Retrieve a list of all integrations.

Authorizations:
tokenAuth
query Parameters
cursor
string

The pagination cursor value.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ]
}

create

Create a new integration.

Authorizations:
tokenAuth
Request Body schema:
username
required
string <= 100 characters

Tablet username

password
required
string <= 100 characters

Tablet password

type
required
string (Type748Enum)
Enum: "3" "14" "17" "32"
  • 3 - GrubHub
  • 14 - UberEats
  • 17 - DoorDash
  • 32 - Grabull
restaurant_id
required
string <uuid>

ID of the restaurant

brand_profile_id
required
string <uuid>

ID of the Brand

Responses

Request samples

Content type
{
  • "username": "string",
  • "password": "string",
  • "type": "3",
  • "restaurant_id": "72223a13-a381-496e-9cbe-9cb7ee501933",
  • "brand_profile_id": "bf8b5279-652e-41f9-a29a-24e1d5c3f796"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "username": "string",
  • "type": "3"
}

retrieve

Retrieve a single integration by ID.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an integration

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "username": "string",
  • "provider_type": "3",
  • "mapping_id": "string",
  • "fulfilment_types": [
    ],
  • "has_self_delivery": true,
  • "progress_sub_status": "0",
  • "service_error_text": "string",
  • "is_enabled": true,
  • "status_updated": "2019-08-24T14:15:22Z",
  • "store_info": {
    },
  • "hours": {
    },
  • "today_open": "2019-08-24T14:15:22Z",
  • "today_close": "2019-08-24T14:15:22Z",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

update

Update an existing integration.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an integration

Request Body schema:
username
required
string <= 100 characters

Tablet username

password
required
string <= 100 characters

Tablet password

provider_type
required
string (ProviderTypeEnum)
Enum: "3" "14" "17" "32"
  • 3 - GrubHub
  • 14 - UberEats
  • 17 - DoorDash
  • 32 - Grabull
is_enabled
boolean or null

Integration is active or deactivated

Responses

Request samples

Content type
{
  • "username": "string",
  • "password": "string",
  • "provider_type": "3",
  • "progress_sub_status": "0",
  • "is_enabled": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "username": "string",
  • "provider_type": "3",
  • "mapping_id": "string",
  • "fulfilment_types": [
    ],
  • "has_self_delivery": true,
  • "progress_sub_status": "0",
  • "service_error_text": "string",
  • "is_enabled": true,
  • "status_updated": "2019-08-24T14:15:22Z",
  • "store_info": {
    },
  • "hours": {
    },
  • "today_open": "2019-08-24T14:15:22Z",
  • "today_close": "2019-08-24T14:15:22Z",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

partial update

Partially update an existing integration.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an integration

Request Body schema:
username
string <= 100 characters

Tablet username

password
string <= 100 characters

Tablet password

provider_type
string (ProviderTypeEnum)
Enum: "3" "14" "17" "32"
  • 3 - GrubHub
  • 14 - UberEats
  • 17 - DoorDash
  • 32 - Grabull
is_enabled
boolean or null

Integration is active or deactivated

Responses

Request samples

Content type
{
  • "username": "string",
  • "password": "string",
  • "provider_type": "3",
  • "progress_sub_status": "0",
  • "is_enabled": true
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "username": "string",
  • "provider_type": "3",
  • "mapping_id": "string",
  • "fulfilment_types": [
    ],
  • "has_self_delivery": true,
  • "progress_sub_status": "0",
  • "service_error_text": "string",
  • "is_enabled": true,
  • "status_updated": "2019-08-24T14:15:22Z",
  • "store_info": {
    },
  • "hours": {
    },
  • "today_open": "2019-08-24T14:15:22Z",
  • "today_close": "2019-08-24T14:15:22Z",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

delete

Delete an existing integration.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an integration

Responses

Response samples

Content type
application/json
{
  • "type": "client_error",
  • "errors": [
    ]
}

troubleshoot

Troubleshoot an existing integration.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an integration

Responses

Response samples

Content type
application/json
Example
{
  • "type": "validation_error",
  • "errors": [
    ]
}

restaurant

list

Retrieve a list of all restaurants.

Authorizations:
tokenAuth
query Parameters
cursor
string

The pagination cursor value.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ]
}

create

Create a new restaurant.

Authorizations:
tokenAuth
Request Body schema:
name
required
string <= 150 characters

name of the restaurant

address
required
string <= 720 characters

address of the restaurant

email
string or null <= 1000 characters

email for an restaurant

phone
string or null <= 30 characters

contact number of the restaurant

website
string or null <= 1000 characters

website of the restaurant

is_enabled
boolean or null

whether this restaurant is enabled or not

is_owner_enabled
boolean or null

whether this restaurant owner is enabled or not

required
object (HoursDetails)

Responses

Request samples

Content type
{
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_enabled": true,
  • "is_owner_enabled": true,
  • "hours": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_enabled": true,
  • "is_owner_enabled": true,
  • "hours": {
    }
}

retrieve

Retrieve a single restaurant by ID.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

A UUID string identifying this Restaurant.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_enabled": true,
  • "is_owner_enabled": true,
  • "timezone": "string",
  • "billing_started": "2019-08-24T14:15:22Z",
  • "disable_reason": "string",
  • "disabled": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "hours_id": "5da02b9c-4d05-4fc6-8637-7134678cda5c",
  • "hours": {
    },
  • "special_hours": [
    ]
}

update

Update an existing restaurant.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

A UUID string identifying this Restaurant.

Request Body schema:
name
required
string <= 150 characters

name of the restaurant

address
required
string <= 720 characters

address of the restaurant

email
string or null <= 1000 characters

email for an restaurant

phone
string or null <= 30 characters

contact number of the restaurant

website
string or null <= 1000 characters

website of the restaurant

is_enabled
boolean or null

whether this restaurant is enabled or not

is_owner_enabled
boolean or null

whether this restaurant owner is enabled or not

required
object (HoursDetails)

Responses

Request samples

Content type
{
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_enabled": true,
  • "is_owner_enabled": true,
  • "hours": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_enabled": true,
  • "is_owner_enabled": true,
  • "timezone": "string",
  • "billing_started": "2019-08-24T14:15:22Z",
  • "disable_reason": "string",
  • "disabled": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "hours_id": "5da02b9c-4d05-4fc6-8637-7134678cda5c",
  • "hours": {
    },
  • "special_hours": [
    ]
}

partial update

Partially update an existing restaurant.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

A UUID string identifying this Restaurant.

Request Body schema:
name
string <= 150 characters

name of the restaurant

address
string <= 720 characters

address of the restaurant

email
string or null <= 1000 characters

email for an restaurant

phone
string or null <= 30 characters

contact number of the restaurant

website
string or null <= 1000 characters

website of the restaurant

is_enabled
boolean or null

whether this restaurant is enabled or not

is_owner_enabled
boolean or null

whether this restaurant owner is enabled or not

object (HoursDetails)

Responses

Request samples

Content type
{
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_enabled": true,
  • "is_owner_enabled": true,
  • "hours": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_enabled": true,
  • "is_owner_enabled": true,
  • "timezone": "string",
  • "billing_started": "2019-08-24T14:15:22Z",
  • "disable_reason": "string",
  • "disabled": "2019-08-24T14:15:22Z",
  • "owner_id": "8826ee2e-7933-4665-aef2-2393f84a0d05",
  • "hours_id": "5da02b9c-4d05-4fc6-8637-7134678cda5c",
  • "hours": {
    },
  • "special_hours": [
    ]
}

delete

Delete an existing restaurant.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

A UUID string identifying this Restaurant.

Responses

Response samples

Content type
application/json
{
  • "type": "client_error",
  • "errors": [
    ]
}