API Integration

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

 

email

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),