Molzait API (1)

Download OpenAPI specification:Download

Floor plan

Interfaces for creating, updating and deleting floor plans

List floor plans

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new floor plans

Request Body schema: application/json
required
name
required
string
sortIndex
required
number
required
object

A map of available tables in this floor plan. The keys of the map are the ids of the table

required
object

A map of available table combinations in this floor plan. The keys of the map are the ids of the table combination

required
object

A map of visible elements in this floor plan

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "sortIndex": 0,
  • "tables": {
    },
  • "combinations": {
    },
  • "elements": {
    }
}

Response samples

Content type
application/json
{
  • "id": "dc65e370fa7c-449d-8da7-5caa2240f2d3",
  • "name": "string",
  • "restaurantId": "b48e6665bbbe-481e-83b1-118184a7dafa",
  • "sortIndex": 0,
  • "tables": {
    },
  • "combinations": {
    },
  • "elements": {
    }
}

Update a floor plans

path Parameters
floorPlanId
required
string
Request Body schema: application/json
required
name
required
string
sortIndex
required
number
required
object

A map of available tables in this floor plan. The keys of the map are the ids of the table

required
object

A map of available table combinations in this floor plan. The keys of the map are the ids of the table combination

required
object

A map of visible elements in this floor plan

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "sortIndex": 0,
  • "tables": {
    },
  • "combinations": {
    },
  • "elements": {
    }
}

Response samples

Content type
application/json
{
  • "id": "dc65e370fa7c-449d-8da7-5caa2240f2d3",
  • "name": "string",
  • "restaurantId": "b48e6665bbbe-481e-83b1-118184a7dafa",
  • "sortIndex": 0,
  • "tables": {
    },
  • "combinations": {
    },
  • "elements": {
    }
}

Delete a floor plans

path Parameters
floorPlanId
required
string

Responses

Availability

Interfaces for requesting currently available slots

Listing experiences

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Listing available slots

query Parameters
attendees
required
number
Example: attendees=2

Number of attendees

day
required
string
Example: day=2024-06-10

The day to query time slots

experienceId
required
string
Example: experienceId=84c2d9f121c5-4c95-8992-847c134f97e9
reservationId
string
Example: reservationId=708327090dfa-4e1c-b3f0-bca9b1b64ede

When updating a reservation send the id of the reservation to exclude it from the availability calculation

Responses

Response samples

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

Reservations

Interfaces for interacting with restaurant reservations

List reservations

query Parameters
from
required
string
Example: from=2023-01-01
to
required
string
Example: to=2023-01-31
status
Array of any
Example: status=seated&status=booked
includeWalkIns
boolean
Example: includeWalkIns=true

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a reservation

Request Body schema: application/json
required
attendees
required
number

The number of attendees for this reservation

day
required
string <yyyy-mm-dd>

The day of the reservation

email
string
experienceId
required
string
firstName
string
lastName
required
string
locale
required
string
Enum: "en" "de"
minutes
required
number

Minutes since the start of the day based in the restaurants configured timezone. 600 = 10:00

notes
string or null
phone
string
pinnedTableIds
Array of strings

Set the table ids of this reservation. When omitted, the tables will be selected automatically.

Responses

Request samples

Content type
application/json
{
  • "attendees": 2,
  • "day": "2024-01-02",
  • "email": "john.doe@example.com",
  • "experienceId": "84c2d9f121c5-4c95-8992-847c134f97e9",
  • "firstName": "John",
  • "lastName": "Doe",
  • "locale": "en",
  • "minutes": 600,
  • "notes": "Comes with a dog",
  • "phone": "+436605512234",
  • "pinnedTableIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Load a reservation

path Parameters
reservationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Update reservation

Currently only status updates are allowed

path Parameters
reservationId
required
string
Request Body schema: application/json
required
status
string
Enum: "requested" "unconfirmed" "payment_pending" "booked" "reconfirmed" "arrived" "seated" "ordered" "paid" "declined" "finished" "cancelled" "no_show" "voided"
day
string
minutes
number
attendees
number
tableIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "status": "requested",
  • "day": "string",
  • "minutes": 0,
  • "attendees": 0,
  • "tableIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Check-In

Searches a booked reservation currently starting (+/- 15 minutes) for the given table. If one is found the reservation will be checked in. If no reservation is found a new Walk-In will be created

Request Body schema: application/json
required
tableName
string
tableIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "tableName": "102",
  • "tableIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Check-Out

Searches an active reservation on the current day for the given table. If one is found, the reservation will be set to paid and automatically finished after a few minutes.

Request Body schema: application/json
required
tableName
string
tableIds
Array of strings

Responses

Request samples

Content type
application/json
{
  • "tableName": "102",
  • "tableIds": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experience": {
    },
  • "startTime": "2019-08-24T14:15:22Z",
  • "endTime": "2019-08-24T14:15:22Z",
  • "checkinTime": "2019-08-24T14:15:22Z",
  • "checkoutTime": "2019-08-24T14:15:22Z",
  • "status": "requested",
  • "source": "app",
  • "restaurantId": "string",
  • "guest": {
    },
  • "pinnedTables": [
    ],
  • "labels": [
    ],
  • "specialRequestNotes": "string",
  • "internalNotes": "string",
  • "payment": {
    }
}

Gift cards

Interfaces to create, top up and redeem gift cards

Request a gift card

path Parameters
giftCardId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "amount": 0,
  • "remainingAmount": 0,
  • "templateId": "string",
  • "image": {
    },
  • "email": "string",
  • "expiresOnDay": "2050-12-31",
  • "locale": "en",
  • "creationTimestamp": "2019-08-24T14:15:22Z"
}

Create a gift card

Request Body schema: application/json
required
amount
required
number

The initial amount when creating this gift card

templateId
required
string

The template of the gift card

email
string

The customers email address

expiresOnDay
required
string

The day the gift card expires

locale
string
Enum: "en" "de"

The customers locale. Emails will be sent using this locale

id
string

The code of this gift card. Can be left empty to generate one

Responses

Request samples

Content type
application/json
{
  • "amount": 0,
  • "templateId": "string",
  • "email": "string",
  • "expiresOnDay": "2050-12-31",
  • "locale": "en",
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "amount": 0,
  • "remainingAmount": 0,
  • "templateId": "string",
  • "image": {
    },
  • "email": "string",
  • "expiresOnDay": "2050-12-31",
  • "locale": "en",
  • "creationTimestamp": "2019-08-24T14:15:22Z"
}

Create a gift card transaction

Request Body schema: application/json
required
status
required
string
Enum: "pending" "successful"

The status of the transaction

amount
required
number

Amount of the transaction in cents. Positive values top up. Negative values redeem the gift card.

reference
string

Responses

Request samples

Content type
application/json
{
  • "status": "successful",
  • "amount": 10000,
  • "reference": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "status": "successful",
  • "amount": 10000,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "reference": "string"
}

Update a gift card transaction

path Parameters
giftCardId
required
string
transactionId
required
string
Request Body schema: application/json
required
status
required
string
Enum: "pending" "successful"

The status of the transaction

reference
string

Responses

Request samples

Content type
application/json
{
  • "status": "successful",
  • "reference": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "status": "successful",
  • "amount": 10000,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "reference": "string"
}

Creates a new transaction to refund the transaction with the given id

path Parameters
giftCardId
required
string
transactionId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "status": "successful",
  • "amount": 10000,
  • "timestamp": "2019-08-24T14:15:22Z",
  • "reference": "string"
}

Phone calls

Interfaces for reporting incoming calls

Incoming call

Report an status update regarding an incoming call

path Parameters
phoneNumberId
required
string
Request Body schema: application/json
required
id
required
string

An unique UUID that identifies the call in the external phone system. Min length is 10 characters

phoneNumber
required
string

An E.164 formatted phone number

status
required
string
Enum: "ringing" "picked_up" "hung_up" "abandoned"

The current status of the call

Responses

Request samples

Content type
application/json
{
  • "id": "90e4020a-a9d1-4a06-8906-fec2126cc007",
  • "phoneNumber": "+436601123345",
  • "status": "ringing"
}

Widget

Widget bootstrap data

path Parameters
restaurantId
required
string
query Parameters
experienceId
any

Responses

Response samples

Content type
application/json
{
  • "restaurantId": "string",
  • "experiences": [
    ],
  • "experienceGroups": [
    ],
  • "minPartySize": 0,
  • "maxPartySize": 0,
  • "formalLanguage": true,
  • "newsletterSignupEnabled": true,
  • "address": [
    ],
  • "tableCategories": [
    ],
  • "branding": { },
  • "email": "string",
  • "restaurantName": "string",
  • "countryCode": "string",
  • "phone": "string",
  • "restaurantTimezone": "string",
  • "products": [
    ],
  • "description": {
    },
  • "websiteUrl": "string",
  • "termsOfServiceUrl": "string",
  • "privacyPolicyUrl": "string",
  • "stepOrder": "partysize_experience_date",
  • "buttonLabel": "reserve",
  • "giftCards": { },
  • "suggestContactForShortTermOnlineReservations": true
}

Listing availability

path Parameters
restaurantId
required
string
query Parameters
experienceId
required
any
day
required
any
attendees
required
any

Responses

Response samples

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

Creating a reservation

path Parameters
restaurantId
required
string
Request Body schema: application/json
required
experienceId
required
string
attendees
required
number
day
required
string
minutes
required
number
firstName
required
string
lastName
required
string
phone
required
string
email
required
string
notes
required
object
locale
required
string
Enum: "en" "de"
newsletterSignup
required
boolean
tableCategoryId
string
originUrl
required
string

Responses

Request samples

Content type
application/json
{
  • "experienceId": "string",
  • "attendees": 0,
  • "day": "string",
  • "minutes": 0,
  • "firstName": "string",
  • "lastName": "string",
  • "phone": "string",
  • "email": "string",
  • "notes": { },
  • "locale": "en",
  • "newsletterSignup": true,
  • "tableCategoryId": "string",
  • "originUrl": "string"
}

Response samples

Content type
application/json
{
  • "type": "success",
  • "redirectUrl": "string",
  • "reservation": {
    }
}

Update a reservation

path Parameters
restaurantId
required
string
reservationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experienceId": "string",
  • "startTime": "string",
  • "endTime": "string",
  • "status": "requested",
  • "needsSpecialRequestConfirmation": true
}

Reconfirm a reservation

path Parameters
restaurantId
required
string
reservationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experienceId": "string",
  • "startTime": "string",
  • "endTime": "string",
  • "status": "requested",
  • "needsSpecialRequestConfirmation": true
}

Cancel a reservation

path Parameters
restaurantId
required
string
reservationId
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "string",
  • "attendees": 0,
  • "experienceId": "string",
  • "startTime": "string",
  • "endTime": "string",
  • "status": "requested",
  • "needsSpecialRequestConfirmation": true
}

Check validity and amount of a gift card

path Parameters
restaurantId
required
string
giftCardId
required
string

Responses

Response samples

Content type
application/json
Example
null

Purchase a gift card

path Parameters
restaurantId
required
string
Request Body schema: application/json
required
object (GiftCardPurchaseRequestDto)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Check status of transaction

path Parameters
restaurantId
required
string
giftCardTransactionId
required
string

Responses

Response samples

Content type
application/json
{ }