Skip to content
Last updated

Operator Setup

Before venues appear in the Bookings API, you must onboard each operator and connect their TMS credentials. This is a one-time administrative step — once set up, the operator's venues are immediately searchable and bookable.


The setup model

Bookable is a gateway to multiple Table Management Systems (Collins, SevenRooms, Zonal). Operators — the hospitality businesses whose venues you want to make bookable — each use one or more of these systems. You supply their TMS credentials to Bookable once, and Bookable handles all TMS communication on your behalf.

1. Onboard operator   →   2. Add TMS credentials   →   3. Venues appear in GET /venues

Step 1: Onboard an operator

An operator represents a hospitality business — a restaurant group, bar chain, or event venue company. Onboard one with POST /operators.

The partnerSource field identifies your bookings channel within the operator's TMS. If the operator already has a label for your channel from a previous integration, use that value. If in doubt, ask the operator.

curl -X POST https://api.bookabletech.com/operators \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "businessName": "Acme Restaurant Group",
    "partnerSource": "YourTradingName"
  }'

Example response:

{
  "id": 3,
  "businessName": "Acme Restaurant Group",
  "createdAt": "2025-03-01T10:00:00Z",
  "updatedAt": "2025-03-01T10:00:00Z"
}

Store the id — you need it in the next step.


Step 2: Add TMS credentials

TMS credentials tell Bookable how to authenticate with the operator's table management system. The required fields depend on which TMS the operator uses.

Supported TMS systems

TMSSlugAuth typeRequired fields
CollinsCOBearer tokenbearer, externalOperatorId
SevenRoomsSRClient credentialsclientId, secretId
ZonalZOBasic authclientId, secretId

The operator must supply their TMS credentials to you directly. Contact the TMS provider if you need guidance on where to find them.

Collins (CO)

{
  "tmsSlug": "CO",
  "bearer": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
  "externalOperatorId": "514ada610df690b6770000fd",
  "active": true
}

SevenRooms (SR)

{
  "tmsSlug": "SR",
  "clientId": "44966392-f2d4-4929-8c9a-e87a0e7dc856",
  "secretId": "LjjXs5$3M%Btx@tt",
  "active": true
}

Zonal (ZO)

{
  "tmsSlug": "ZO",
  "clientId": "44966392-f2d4-4929-8c9a-e87a0e7dc856",
  "secretId": "LjjXs5$3M%Btx@tt",
  "active": true
}

Make the request

OPERATOR_ID=3

curl -X POST "https://api.bookabletech.com/operators/${OPERATOR_ID}/tms-credentials" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "tmsSlug": "CO",
    "bearer": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
    "externalOperatorId": "514ada610df690b6770000fd",
    "active": true
  }'

Example response:

{
  "operatorId": 3,
  "tmsId": 1,
  "tmsName": "Collins",
  "tmsSlug": "CO",
  "bearer": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
  "externalOperatorId": "514ada610df690b6770000fd",
  "active": true,
  "createdAt": "2025-03-01T10:05:00Z",
  "updatedAt": "2025-03-01T10:05:00Z"
}

Step 3: Verify venues are visible

Once credentials are active, call GET /venues to confirm the operator's venues appear:

curl "https://api.bookabletech.com/venues" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

You should see venues belonging to the operator you just onboarded. If the list is empty, double-check that active was set to true and that the credentials are correct.


Managing operators

ActionEndpoint
List all operatorsGET /operators
Get a specific operatorGET /operators/{operatorId}
Update operator detailsPUT /operators/{operatorId}
Remove an operatorDELETE /operators/{operatorId}
List TMS credentialsGET /operators/{operatorId}/tms-credentials
Update TMS credentialsPUT /operators/{operatorId}/tms-credentials/{tmsId}
Remove TMS credentialsDELETE /operators/{operatorId}/tms-credentials/{tmsId}

See the TMS Gateway API reference for full endpoint documentation.


Next steps