About Wix Bookings Architecture

Wix Bookings comprises multiple interconnected components that enable booking flows for customers and management capabilities for business owners. This architecture is flexible: you can extend, customize, or replace elements of the business solution to meet your needs.

This article describes the main components of the Wix Bookings architecture, available customizations, and the standard single-service booking flow.

Services

The Services V2 API manages each business's offerings and all the information that customers need when deciding whether to book.

Wix Bookings supports 3 service types:

  • Appointments: 1-on-1 or group sessions scheduled at available time slots based on staff and resource availability.
  • Classes: Recurring group sessions with a set schedule and capacity. Customers book individual class sessions.
  • Courses: Multi-session programs with a fixed schedule. Customers book the entire course as a single unit.

Booking policies control when customers can book, limit the maximum number of participants, and manage cancellation and rescheduling rules. You can create and manage these policies using the Booking Policies API. Services are associated with booking forms that customers fill out when making a booking. Learn about how Wix Bookings integrates with Wix Forms.

Customizations

You can extend and customize services in the following ways:

Staff and resources

The Staff Members API manages staff members who provide services and their working hour schedules. Staff availability is a key factor in determining which time slots are available for appointment bookings.

The Resources V2 API manages physical assets like meeting rooms or equipment that services require. You must link resources to resource types to make them bookable and prevent double bookings. Customers can book a service only if all required resources are available during the selected time.

Important: Wix Bookings automatically creates and manages a resource for each staff member. Use the Staff Members API to manage staff because using the Resources V2 API for staff can lead to data conflicts.

Customizations

You can extend and customize staff and resource management in the following ways:

Time slots

The Time Slots V2 API determines which time slots are available for booking based on service type and relevant constraints:

  • For appointments, Wix Bookings determines available time slots based on:
    • Session duration.
    • Staff member working hours and blocked time.
    • Resource blocked time.
    • Time buffer between sessions.
    • Service policies.
  • For classes, Wix Bookings determines available time slots based on the class schedule, capacity, and service policies, including waitlist functionality.
  • For courses, Wix Bookings determines availability based on the course's capacity and service policies.

Wix Bookings validates all these factors at multiple points in the booking flow:

  • When displaying a service's available time slots to customers.
  • Before creating the booking (before payment is made).
  • Before confirming the booking (after payment is made).

Bookings

The Bookings Writer V2 API handles the creation and management of both single-service and multi-service bookings.

After the session takes place, you can track and manage customer attendance using the Attendance API.

Forms integration

Wix Bookings integrates with Wix Forms to collect customer information during the booking process. Each service has an associated booking form that customers complete when making a booking.

When a customer completes a booking form, Wix Forms creates a form submission that contains the customer's responses. The system automatically links this submission data to the booking, and you can access it through the Form Submissions API. Learn more about how Wix Bookings integrates with Wix Forms.

Booking creation

The system creates a booking once the customer selects 1 or more services with specific time slots and completes the booking form. The booking then moves through the payment and checkout flow. After payment completes, the system either confirms the booking automatically or sends it to the business for manual approval, depending on the service configuration.

Customizations

You can extend and customize the booking experience in the following ways:

  • Customize booking forms: By default, all services use a standard booking form, but you can create custom forms by adding fields, removing fields, or marking fields as required.
  • Build custom booking flows: Use the Bookings Writer V2 API to create bookings programmatically from your own interfaces, 3-party platforms, or automated systems.
  • React to booking events: Listen to booking lifecycle events to trigger custom workflows when bookings are created, confirmed, canceled, or rescheduled.

Checkout and payments

Wix Bookings integrates with the Wix eCommerce platform to handle payments and order management.

The Wix eCommerce system automatically uses the booking ID as a catalog item reference and handles pricing calculations, tax, and payment processing. Add-ons appear as additional fees in the eCommerce checkout.

By default, the system creates a checkout using the Checkout API and redirects customers to complete payment. Once payment processes, Wix eCommerce creates an order and updates the booking status based on the service configuration (for example, CONFIRMED for automatic approval or PENDING for manual approval).

Learn more about payment handling flows.

Customizations

You can customize the checkout and payment experience in the following ways:

  • Implement your own checkout: For custom payment flows, you can implement your own checkout experience to collect payment. After the customer completes your custom checkout, call Confirm Or Decline Booking with options.paymentStatus set to PAID to update the booking status to CONFIRMED. Then, create an order using the Orders API to record the transaction with your custom payment details. This ensures the booking is properly tracked in both the Bookings and eCommerce systems.
  • Customize pricing calculations: Use the Pricing Integration service plugin to manage the price of a booking externally. Wix Bookings calls the integration whenever a customer enters the booking flow to get the price to charge.

Calendar

Wix Bookings integrates with Wix Calendar to manage schedules and events. Once the booking is confirmed, Wix Bookings adds the session to the business's booking calendar and to the schedules of the relevant staff members, rooms, and other resources. The booking calendar displays all scheduled sessions and can be filtered by service, staff, and other criteria to help manage daily operations. Learn more about how Wix Bookings integrates with Wix Calendar.

Customizations

You can connect and sync external calendars with Wix Bookings using the External Calendars API. This allows staff members to sync their Wix Bookings calendar with Google Calendar, Microsoft Outlook, or Apple Calendar for bidirectional synchronization.

Important: The Calendar V3 APIs are standalone services and aren't part of the Bookings APIs. However, the External Calendars API is part of Bookings.

Notifications

Wix Bookings automatically sends notifications to keep Wix users and customers informed about booking events.

Wix users receive notifications for events such as:

  • New bookings.
  • Rescheduling requests.
  • Cancellations.

Customers receive notifications for events such as:

  • Booking confirmations.
  • Automatic reminders before a booking begins.
  • Changes to their bookings.

Customizations

You can extend the notification system by providing pre-installed automations that trigger custom notifications (or other actions) when specific conditions are met.

Standard booking flow

The following steps describe the standard single-service booking flow. You can follow this pattern when building custom booking experiences for a site or app.

  1. When the customer views a site's List of Services page, Wix Bookings calls Query Services and displays all available services.
  2. When the customer selects a specific service to view, the system:
    1. Calls Get Service.
    2. Checks availability:
    3. Displays details of the specific service and available time slots.
  3. When the customer selects a time slot to book, Wix Bookings displays the booking form associated with the service.
  4. The customer enters the required information in the booking form.
  5. When the customer clicks Book now:
    1. For appointments and classes, Wix Bookings calls the appropriate Time Slots V2 method again to validate that the time slot is still available.
    2. Wix Forms creates a form submission containing the customer's responses. This submission is linked to the booking through the booking's formInfo.submissionId field, allowing you to retrieve the complete form data using the Form Submissions API.
    3. Wix Bookings calls Create Booking to create a booking for the customer, using the form submission data to populate the booking details.
    4. If the Wix user has configured manual approval for the booked service, they receive a notification requesting review and approval. Manual approval is limited to free services or those with offline payments.
  6. If the service requires online payment, the system leads the customer to the eCommerce checkout flow.
  7. If a Pricing Integration service plugin is implemented, Wix Bookings calls the integration to calculate the price to charge.
  8. When the customer completes the eCommerce checkout flow (or when the session is free or the customer pays offline), Wix eCommerce triggers an Order Approved event.
  9. Once the order is approved, Wix Bookings calls Confirm Or Decline Booking.
  10. Once the booking is confirmed:
    • Wix Bookings adds the session to the business's booking calendar and to the schedules of any affected staff and resources.
    • Wix Bookings triggers any configured notifications.
    • The system triggers any automations configured to run when a session is booked and schedules automations to run around session start and session end.
    • The customer can view and manage their booking (cancel or reschedule) on a site's members area.
    • Wix users can view and manage bookings on the site dashboard's booking calendar.

See also

Did this help?