Link your reservation data on Dineplan with your CRM tool via API.
Dineplan has an API facility that allows you to pull reservation and payment data from your account periodically, which you can then consume via API and push into your CRM system.
We do not integrate or have a webhook that automates this process just yet, so this is something that you will need to setup.
There is a monthly ZAR 190.00 (ex VAT) API maintenance fee per account that you would like to pull information for and, once requested, we will send through individual API keys if you would like to proceed.
Below is our API documentation for you to get a better understanding of the information that you can pull, however for any more questions please reach out to us on support@dineplan.com.
API DOCUMENTATION
The Dineplan API supports only the GET request. It does not support the POST method so please make sure to only use the GET request.
You require an API key in order to access the Dineplan API. Each key is paired to a specific restaurant. In the case of a restaurant group, an API key can have multiple restaurants paired with it.
The default response is in JSON, however XML is supported and can be requested by setting the parameter “format=xml” on any of the endpoints. We recommend JSON.
Bookings
When queried returns a list of bookings applicable to your API key for the date parameter submitted. An API key can be specific to an individual restaurant or a number of restaurants.
Request Arguments
These are the full list of arguments that can be passed in the call:
-
date (YYYY-MM-DD) required
-
date_to (YYYY-MM-DD default '', if provided then fetches in the date range)
-
near_time (HH:mm default '', will return bookings 1 hour before or after time given)
-
cancelled (default 0)
-
no_show (default 0)
-
deleted (default 0)
Request Example
HTTP 200:
{
status: true,
count: 25,
data: [
{booking_id,restaurant_id,...},
{booking_id,...},
...
]
}
Full Response Object:
booking_id |
int |
The ID of the booking |
|
booking_reference |
string |
An alpha numeric booking reference |
e.g. “hdk7a” |
booking_type_id |
int |
The booking type ID |
|
booking_type_name |
string |
The type of booking it is |
Either: “Online”, “Telephone”, “Email”, “Walkin” |
restaurant_id |
int |
The restaurant ID |
|
restaurant_name |
string |
The restaurant name |
|
created |
datetime |
The date when the booking was created. In the format YYYY-MM-DD HH:mm:ss |
|
modified |
datetime |
The date when the booking was last modified. In the format YYYY-MM-DD HH:mm:ss |
|
date |
date |
The date of the booking. In the format YYYY-MM-DD |
|
time |
time |
The start time of the booking. In the format HH:mm |
e.g. “19:00” |
end_time |
time |
The preset end time of the booking. In the format HH:mm |
e.g. “21:00” |
covers |
int |
Number of guests for the booking |
e.g. 4 |
status_id |
int |
The status ID of the booking |
|
status_name |
string |
The status of the booking |
e.g. “Confirmed”, “Arrived” |
cancelled |
int |
Is the booking cancelled |
1 or 0 |
no_show |
int |
Did the guest not show up for the booking |
1 or 0 |
deleted |
int |
Is the booking deleted |
1 or 0 |
special_requests |
string |
Any special requests made by the guest. This is only set if the guest made the booking via the online booking widget |
|
booking_notes |
string |
The internal booking notes the restaurant has made for this booking |
|
booking_taker_name |
string |
The name of the restaurant employee that took the booking, or who last made a change to the booking |
|
booking_source |
string |
If the booking was made via a booking partner, the source will show the partner’s name |
e.g. “Eat Out”, “Dining-Out” |
diner_id |
int |
The diner ID |
|
first_name |
string |
The first name of the diner |
e.g. “Joe” |
last_name |
string |
The last name of the diner |
e.g. “Soap” |
group_name |
string |
The name of the group the booking is for |
e.g. “Management Xmas” |
company |
string |
The company name for the booking |
e.g. “Pick ’n Pay” |
dialing_code |
string |
The country dialing code for the diner’s contact number |
e.g. “27” |
contact_number |
string |
The diner’s contact number |
e.g. “0821112233” |
secondary_dialing_code |
string |
The country dialing code for the diner’s secondary contact number |
e.g. “27” |
secondary_contact_number |
string |
The diner’s secondary contact number |
|
|
string |
The diner’s email address |
|
secondary_email |
string |
The diner’s secondary email address |
|
loyalty_number |
string |
The diner’s loyalty number, set by the restaurant |
|
diner_notes |
string |
Internal notes the restaurant may have made for the diner |
|
opt_in |
int |
Is the diner opted into marketing with the restaurant |
1 or 0 |
deposit_amount |
int |
Currency amount of the total deposit taken in cents |
e.g. 5000 = R50 (default 0), |