Booking specification

  • A Lease is converted into a Booking to finalize an appointment, and client information is transferred at this stage.

  • Once a Lease is used to create a Booking, it is retired and cannot be used again.

  • A Booking object includes essential details such as booking ID, merchant and service IDs, appointment time and duration, client information, booking status, and payment and virtual session details.

To finalize an appointment, a Lease is converted into a Booking. Information about the client (user) making the booking is only transferred at this stage. After a Lease has been used once to create a Booking, it is retired and cannot be used to create any further bookings.

// A booking for an inventory slot
message Booking {
  // ID of this booking
  string booking_id = 1;

  // ID of the merchant for the slot
  string merchant_id = 2;

  // ID of the merchant service
  string service_id = 3;

  // Start time of the appointment slot
  google.protobuf.Timestamp start_time = 4;

  // Duration of the appointment slot
  google.protobuf.Duration duration = 5;

  // Personal information of the client making the appointment
  ClientInformation client_information = 6;

  // Status of the booking
  BookingStatus status = 7;

  // Information about payment transactions that relate to the booking.
  PaymentInformation payment_information = 8;

  // Information about virtual session related to this booking. (optional)
  VirtualSessionInfo virtual_session_info = 9;
}