This document outlines a high-level workflow for integrating a venue booking system using the Booking API. The process includes:
- Searching for venues
- Checking availability
- Creating a booking or a booking enquiry
Each step uses specific API endpoints to provide a complete user experience.
Objective: Retrieve a list of venues matching user-defined filters.
Api Endpoint:
GET /venues
Expected Response: A list of venues, each including compositeID, name, address, and contact information.
Objective: Verify if a specific venue is available at a given date and time.
Api Endpoint:
GET /venues/{compositeId}/availability
Note: Composite Id are inside json node "products"
date: Booking date
time: Booking time
duration: Duration in hours
Expected Response: An object that specifies whether the venue is available, suggests potential alternatives if it's not, or indicates if an enquiry can be submitted.
Objective: Finalize the reservation by submitting an instant booking or a booking enquiry.
| Field | Type | Required | Description |
|---|---|---|---|
firstName | string | β | Guest's first name. Example: John |
lastName | string | β | Guest's last name. Example: Doe |
partySize | integer | β | Number of people for the booking. Example: 4 |
date | string | β | Booking date in format YYYY-MM-DD. Example: 2025-02-15 |
time | string | β | Booking time in HH:mm format (24h). Example: 18:30 |
type | string | β | Availability type: book (instant) or request (manual approval). |
duration | integer | β | Duration of the booking in minutes. Example: 120 |
email | string | β | Guestβs email address. Example: john.doe@example.com |
phone | string | β | Guestβs phone number. Example: +1234567890 |
notes | string | β | Additional notes or requests. Example: Please prepare a birthday cake. |
Api Endpoint:
POST /venues/{compositeId}/bookings
Expected Response: A booking confirmation or enquiry acknowledgment containing a unique booking ID, status, and relevant details.