In light of COVID-19, please review the latest announcement regarding the Reserve with Google guidelines for supporting users and merchants during this time. Additionally, since we are operating with a limited support team, it may take longer to connect with us. Thank you for your patience, and we value your partnership.

CreateBooking method

Request

CreateBookingRequest

Return value

CreateBookingResponse

Side effects

CreateBooking consumes a Lease, rendering it invalid for any further bookings.

Canonical gRPC error codes

  • INVALID_ARGUMENT if the provided ClientInformation is invalid, e.g. due to missing fields
  • NOT_FOUND if the provided lease ID is not valid.
  • RESOURCE_EXHAUSTED (if the slot has become unavailable since creating the lease, e.g. due to a conflicting booking)
  • ALREADY_EXISTS (if the client already has a booking for the slot)
// Request to create a [ext.maps.booking.partner.v0.Booking] for an inventory
// slot. Consumes the lease.
message CreateBookingRequest {
  // The lease that is being confirmed to make this booking
  LeaseReference lease_ref = 1;

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

  // Information about payments. If the booking request does not succeed,
  // payment authorizations are automatically canceled.
  PaymentInformation payment_information = 3;

  // The parameters to be used if the payment is processed by the partner
  // (i.e. payment_information.payment_processed_by is equal to
  // PROCESSED_BY_PARTNER).
  PaymentProcessingParameters payment_processing_parameters = 4;
}

// Response with the created [ext.maps.booking.partner.v0.Booking] for an
// inventory slot
message CreateBookingResponse {
  // The created booking
  Booking booking = 1;

  // The updated user payment option used in this booking.
  // If a new payment option was purchased to pay for the booking, this should
  // be a newly created user payment option.
  // If an already purchased user payment option was used for this booking,
  // this should reflect an updated version of that user payment option.
  UserPaymentOption user_payment_option = 2;
}