Skip to main content

Table

The Tables API is now archived. For up-to-date Pay at Table integrations, please use the Dojo API and EPOS Data API:

The Table object is used to represent physical tables in your EPOS system.

info

Multiple sessions can be associated with a single table. A session can only belong to a single table, and payments are associated with the session - specifically with the sessionId. A restaurant with long tables and bench-seating may have several sessions attached to a single table.

Operations

Because Tables is a WebSockets Async API, each of these table operations has both a SUB (subscribe) as well as a PUB (publish) message. The subscribe messages are the requests, while the publish messages are the responses.

There are three table operations included in the Tables API:

  • GetTable retrieves detailed information about a specific table.
  • ListTables provides a list of tables as specified by the parameters. If no parameters are set, a listTablesRequest will return a list of all tables.

Name

The tableName is a human-readable, unique identifier, stored on the EPOS level.

It is essential that the table name does not contain the sequence of characters: ' - ' (whitespace, hyphen, whitespace). This restriction ensures compatibility with Dojo's card terminals, which use the format of "${Table.name} - ${Session.name}" to represent any session with a table.

info

Ensure that when you assign a Session to a Table that the Table.name matches the Session.tableName.

Covers

The EPOS should accurately report the maximum amount of covers available on a table, so that there is always a full picture of maximum capacity.

Status

The status of a table allows consumers of the Tables API to understand the currently available cover count at any given time:

  • TABLE_STATUS_NOT_IN_USE - The table is currently not in use, such as when a restaurant's terrace space is closed for the winter.
  • TABLE_STATUS_AVAILABLE - The table is prepared and available for new customers.
  • TABLE_STATUS_OCCUPIED - The table is currently occupied by a customer or group of customers who are dining at it.
  • TABLE_STATUS_PENDING_AVAILABLE - The table is unoccupied but not yet fully ready for customers to be seated, potentially requiring cleaning or other preparations.