Create Booking
Create a new booking for the restaurant associated with the bearer token.
This endpoint is protected by RMS idempotency middleware. You must send an Idempotency-Key
header matching ^[a-zA-Z0-9-]{1,64}$.
RMS caches successful JSON responses for 24 hours per bearer token + idempotency key. When the
same request is replayed with a cached result, RMS returns the cached response and adds the
Idempotent-Replayed: true response header.
Authorization
bearerAuth Supports two token types:
- Restaurant tokens — API tokens with
restaurant-apiability, issued per restaurant. - User tokens — Personal access tokens with
mobile-accessability (e.g. for the mobile app). When managing multiple restaurants, includeX-Restaurant-Id: <id>header.
In: header
Header Parameters
Unique idempotency key for this booking creation request. Must be 1-64 characters and contain only letters, numbers, and hyphens.
^[a-zA-Z0-9-]{1,64}$1 <= length <= 64Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://devrms.tabdevx.com/api/restaurant/bookings" \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{ "date": "2026-03-18T19:00:00", "adults": 4, "children": 1, "dining_area_id": 10, "comment": "Window seat", "patron": { "first_name": "John", "last_name": "Doe", "email": "john@example.com", "mobile_number": "+35612345678", "mobile_prefix": "+356" } }'{
"data": {
"id": 123,
"reference": "API-ABC123",
"status": "confirmed",
"date": "2026-03-18T19:00:00+00:00",
"end_time": "2026-03-18T21:00:00+00:00",
"adults": 4,
"no_of_adults": 4,
"children": 1,
"no_of_children": 1,
"comment": "Window seat",
"dining_area": {
"id": 10,
"name": "Main Hall"
},
"tables": [
{
"id": 1,
"name": "T1",
"covers": 4
},
{
"id": 2,
"name": "T2",
"covers": 2
}
],
"patron": {
"name": "John Doe",
"email": "john@example.com",
"mobile_number": "+35612345678"
}
},
"meta": {
"timestamp": "2026-03-18T10:00:00Z",
"restaurant_id": 1
}
}{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"meta": {
"timestamp": "2019-08-24T14:15:22Z"
}
}{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"meta": {
"timestamp": "2019-08-24T14:15:22Z"
}
}{
"message": "The given data was invalid.",
"errors": {
"patron.email": [
"The patron.email must be a valid email address."
],
"dining_area_id": [
"The selected dining area id is invalid."
]
}
}{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"meta": {
"timestamp": "2019-08-24T14:15:22Z"
}
}