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
required
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
required
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
required
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
required
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": [
    ]
}

integrations

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:
required
username
required
string <= 100 characters

Tablet username

password
required
string <= 100 characters

Tablet password

type
required
string (TypeF21Enum)
Enum: "3" "10" "14" "17"
  • 3 - GrubHub
  • 10 - Slice
  • 14 - UberEats
  • 17 - DoorDash
restaurant_id
required
string <uuid>

ID of the restaurant

Responses

Request samples

Content type
{
  • "username": "string",
  • "password": "string",
  • "type": "3",
  • "restaurant_id": "72223a13-a381-496e-9cbe-9cb7ee501933"
}

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:
required
username
required
string <= 100 characters

Tablet username

password
required
string <= 100 characters

Tablet password

provider_type
required
string (ProviderTypeEnum)
Enum: "3" "10" "14" "17"
  • 3 - GrubHub
  • 10 - Slice
  • 14 - UberEats
  • 17 - DoorDash
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" "10" "14" "17"
  • 3 - GrubHub
  • 10 - Slice
  • 14 - UberEats
  • 17 - DoorDash
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": [
    ]
}

menu

Publish

Publish Menu to all Providers.

Authorizations:
tokenAuth
Request Body schema:
required
restaurant_id
required
string <uuid>

ID of restaurant for which you want to publish the menu.

header_image
string <uri>

A URL linking to an image of menu header.

logo_image
string <uri>

A URL linking to an image of menu logo.

required
Array of objects (SectionInput)

List of sections in the menu.

required
Array of objects (CategoryInput)

List of categories in the menu.

required
Array of objects (ItemInput)

List of items in the menu.

required
Array of objects (MGInput)

List of modifier groups in the menu.

required
Array of objects (ModifierInput)

List of modifiers in the menu.

Responses

Request samples

Content type
{
  • "restaurant_id": "72223a13-a381-496e-9cbe-9cb7ee501933",
  • "header_image": "http://example.com",
  • "logo_image": "http://example.com",
  • "sections": [
    ],
  • "categories": [
    ],
  • "items": [
    ],
  • "modifier_groups": [
    ],
  • "modifiers": [
    ]
}

Response samples

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

Retrieve

Retrieve the menu by Restaurant ID.

Authorizations:
tokenAuth
path Parameters
restaurant_id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "restaurant_id": "72223a13-a381-496e-9cbe-9cb7ee501933",
  • "header_image": "http://example.com",
  • "logo_image": "http://example.com",
  • "sections": [
    ],
  • "categories": [
    ],
  • "items": [
    ],
  • "modifier_groups": [
    ],
  • "modifiers": [
    ]
}

Menu Item Availability

Update Availability status of menu item.

Authorizations:
tokenAuth
path Parameters
restaurant_id
required
string
Request Body schema:
required
menu_items
required
Array of strings <uuid> [ items <uuid > ]

List of menu item ids for which we need to update availability.

availability_status
required
string (AvailabilityStatusEnum)
Enum: "1" "2" "3" "4" "5"
  • 1 - available
  • 2 - sold out today
  • 3 - sold out untill
  • 4 - archived
  • 5 - draft
sold_out_till
string <date-time>

Required when it is sold out until otherwise it will be counted as sold_out_today

Responses

Request samples

Content type
{
  • "menu_items": [
    ],
  • "availability_status": "1",
  • "sold_out_till": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "menu_items": [
    ],
  • "availability_status": "1",
  • "sold_out_till": "2019-08-24T14:15:22Z"
}

orders

list

Retrieve a list of all orders.

Authorizations:
tokenAuth
query Parameters
cursor
string

The pagination cursor value.

Responses

Response samples

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

retrieve

Retrieve a single order by ID.

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an order

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "integration_id": "55d7337e-1d0a-49fc-9826-925ba40df035",
  • "provider_type": "3",
  • "mapping_id": "string",
  • "reference_no": "string",
  • "order_type": "1",
  • "fulfilment_type": 1,
  • "order_placed": "2019-08-24T14:15:22Z",
  • "expected_ready": "2019-08-24T14:15:22Z",
  • "expected_dropoff_time": "2019-08-24T14:15:22Z",
  • "order_status": "0",
  • "status_history": [
    ],
  • "customer_info": {
    },
  • "driver_info": {
    },
  • "cart_finances": {
    },
  • "payment_type": "1",
  • "order_items": [
    ],
  • "items_count": 0,
  • "is_schedule": true,
  • "is_utensils_needed": true,
  • "is_contact_free": true,
  • "is_food_ready": true,
  • "delay_seconds": -2147483648,
  • "is_cancelled": true,
  • "cancellation_notes": "string",
  • "cancellation_reason": "string",
  • "adjustment_notes": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "updated": "2019-08-24T14:15:22Z"
}

Accept Order

Accept the order

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an order

Request Body schema:
required
prep_seconds
required
integer <= 10800

Responses

Request samples

Content type
{
  • "prep_seconds": 10800
}

Response samples

Content type
application/json
{
  • "prep_seconds": 10800
}

Adjust Order Price

Adjust order amount

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an order

Request Body schema:
required
adjustment_amount
required
number <double>
adjustment_reason
required
string <= 30 characters

Responses

Request samples

Content type
{
  • "adjustment_amount": 0.1,
  • "adjustment_reason": "string"
}

Response samples

Content type
application/json
{
  • "adjustment_amount": 0.1,
  • "adjustment_reason": "string"
}

Delay Order

Delay order estimate by given time

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an order

Request Body schema:
required
delay_seconds
required
integer <= 300

Responses

Request samples

Content type
{
  • "delay_seconds": 300
}

Response samples

Content type
application/json
{
  • "delay_seconds": 300
}

Deny Order

Deny the order

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an order

Responses

Response samples

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

Mark Completed

Update order status to completed

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an order

Responses

Response samples

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

Mark Out For delivery

Update order status to out for delivery for restaurant self delivery orders

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an order

Responses

Response samples

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

Mark as Ready

Update order status to Food ready

Authorizations:
tokenAuth
path Parameters
id
required
string <uuid>

unique identifying for an order

Responses

Response samples

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

Active Orders

Get List of active orders whose estimated time is between (current_time - 3 hours) & (current_time + 3 hours)

Authorizations:
tokenAuth

Responses

Response samples

Content type
application/json
{
  • "previous": "http://example.com",
  • "results": [
    ]
}

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:
required
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

required
object (HoursDetails)

Responses

Request samples

Content type
{
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_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,
  • "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,
  • "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:
required
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

required
object (HoursDetails)

Responses

Request samples

Content type
{
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_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,
  • "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

object (HoursDetails)

Responses

Request samples

Content type
{
  • "name": "string",
  • "address": "string",
  • "email": "string",
  • "phone": "string",
  • "website": "string",
  • "is_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,
  • "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": [
    ]
}