eTender Connect is a restaurant reservation platform for third party booking systems.
Your booking system can access the real time availability of restaurants and create/modify online table reservations - using an access key (token). Please contact the restaurant to get an access key. In order to use a single access key for multiple restaurants, please contact us.
Our HATEOAS (Hypermedia As The Engine Of Application State) RESTful API uses HTTP-verbs with UTF-8 encoding and URL encoded values.
Structured data following Schema.org > Thing > Intangible > Reservation > FoodEstablishmentReservation
Authorization: Bearer <AccessKey>
Request and response payloads are formatted as JSON.
https://eTender-connect.com/v1
Requests from our platform originate from IP 185.22.13.210 to 185.22.13.212.
OK: response restaurant objects by access key/booking partner
OK: response a restaurant object by id
OK: response date-availability objects for all dates
OK: response date-availability objects by year
OK: response date-availability objects by year and month
OK: response TIME-availability objects by date
OK; response reservation details
OK; reservation created
OK; reservation updated
OK; reservation deleted
This is an example object of the restaurant.
{ "id": 10000, "name": "Restaurant Los Pollos Hermanos", "phone": "+31 (0) 20-7793839", "email": "info@lospolloshermanos.restaurant", "address": "Keizersgracht 188", "postalCode": "1016 DW", "city": "Amsterdam", "state": "Noord-Holland", "country": "Nederland", "website": "http://www.lospolloshermanos.restaurant/", "facebook": "lospolloshermanos", "timeZone": "Europe/Amsterdam", "links": [ { "href": "https://eTender-connect.com/v1/restaurants/10000", "rel": "self", "method": "GET" }, { "href": "https://eTender-connect.com/v1/restaurants/10000/availability", "rel": "availability", "method": "GET" }, { "href": "https://eTender-connect.com/v1/restaurants/10000/reservations", "rel": "create-reservation", "method": "POST" } ] }
This is an example object of the availability by date.
[ { "localDate": "2017-01-24", "isAvailable": false, "isOpen": true, "links": [ { "href": "https://eTender-connect.com/v1/restaurants/10000/availability/2017/1/24", "rel": "self", "method": "GET" } ] }, { "localDate": "2017-01-25", "isAvailable": false, "isOpen": false, "links": [ { "href": "https://eTender-connect.com/v1/restaurants/10000/availability/2017/1/25", "rel": "self", "method": "GET" } ] }, { "localDate": "2017-01-26", "isAvailable": true, "isOpen": true, "links": [ { "href": "https://eTender-connect.com/v1/restaurants/10000/availability/2017/1/26", "rel": "self", "method": "GET" } ] }, ... ]
This is an example object of the availability by time (15 minutes).
[ { "localTime": "00:00", "minPartySize": 1, "maxPartySize": 0, "isOpen": false, "isAvailable": false }, { "localTime": "00:15", "minPartySize": 1, "maxPartySize": 0, "isOpen": false, "isAvailable": false }, { "localTime": "00:30", "minPartySize": 1, "maxPartySize": 0, "isOpen": false, "isAvailable": false }, { "localTime": "00:45", "minPartySize": 1, "maxPartySize": 0, "isOpen": false, "isAvailable": false }, { "localTime": "01:00", "minPartySize": 1, "maxPartySize": 0, "isOpen": false, "isAvailable": false }, ... ]
This is an example object of the reservation.
{ "localDate":"2020-06-07", "localTime":"18:45", "partySize":2, "notes":"We want a window seat.", "contact": { "fullName":"Peter Parker", "email":"peter.parker@gmail.com", "newsLetterSubscription":false, "phone":"0612345678", "language":"nl" }, "sectionId":null, "serviceId":null }
A trigger consists of one or more actions performed when a reservation is created or updated. The actions are performed only if certain conditions are met. For example, a trigger can notify your booking system when the status of a reservation is cancelled. Or when the availability of the restaurant is changed.
Please contact us
Error 2001, "Timeslot {reservationDate} is not available for table reservation."
Error 2002, "Party size {partySize} exceeds the available party size."
Error 2003, "Party size {partySize} is too small."
Error 2004, "No time specified."
Error 2005, "No date specified."
Error 2006, "Date {date}, or time {time} are not in a valid format, should be yyyy-MM-dd and HH:mm."
Error 2007, "Could not allocate a table for party size {partySize} while table allocation is required."
Error 2101, "Reservation has no contact information."
Error 2102, "Contact should have a title."
Error 2103, "Contact should have a name."
Error 2104, "Contact should have a phone number."
Error 2105, "Contact should have an email address."
Error 2106, "Contact should have a valid email address, email address is {email}."
Error 2107, "Contact should have a gender."
Error 6001, "Invalid date: {year}/{month}/({day}). Dates should be formatted as yyyy/MM/(dd)."
Error 6002, "Invalid date: {year}/{month}/({day}). Dates should not be in the past."
Error 3001, "No authorization header."
Error 3002, "No AccessKey present in authorization header."
Error 3003, "AccessKey {apiKey} is not a valid AccessKey."
Error 4001, "Restaurant {restaurantId} not found."
Error 4002, "Reservation {reservationId} not found."
Error 9999, "Internal server error."