The following are questions that our partners frequently ask, as well their solutions.
Feeds
- Can partners include merchants with more than one location?
- Yes, partners can do this if they add each location separately in the Merchant feed.
- Can time slots overlap?
- Yes, slots might overlap because intervals between time slots don't have to be equal in duration. These intervals can be much shorter than service duration. This allows you to handle business logic on your end. For example, there can be one time one slot from 9 AM to 10 AM and another slot from 9:15AM to 10:15AM for the same service.
- When you use recurrence, can exception times that are back-to-back be combined into one?
- Yes, they can be combined.
- What's shown to the user when min_advance_online_canceling is set versus when it's not set?
The following messages are shown to the user dependent on the value of min_advance_online_canceling`:
- If set to a specific time: "If you made a booking and cannot attend,
please cancel your booking <
min_advance_online_canceling
> in advance." - If not set: "If you can’t make it to your booking, please call
<
merchant
> directly at <phone number
> to inquire about your refund/cancellation policy."
Booking server
- Should a partner generate the booking ID when a new booking in the Create Booking API is called?
- Yes, generate a booking ID on your end. We treat it as an opaque identifier.
Real-time booking updates
- If a user changes the start time, duration, or services on a booking, would these changes be restricted by the availability feed?
- Yes. For example, a user can't update their 10:00 AM booking to start at 10:05 AM since there are no open availability slots in the availability feed.
- If a partner deletes a merchant or service, does that delete all of its associated services and availability slots?
- Yes, if a partner deletes a merchant or service, sub-levels are automatically disabled in our system.
- Does the
UpdateBookingRequest
booking contain the whole booking fromCreateBookingResponse
or only updated fields? - Both. It contains a mask that contains the updated fields, and the
whole booking from
CreateBookingResponse
. For example, for a booking cancellation, theFieldMask Path="status"
booking object only hasBooking.status = 'BookingStatus.Canceled'
.
Payments
- When can Google support my preferred payment processor?
- The latest list of supported processors is at the Google Pay website.
- For any given availability slot, can a business provide a different price for each staff member who performs the same service?
- Yes, you can provide a per-staff member, per-availability slot price for a
service if you provide a collection of payment options within the merchant
feed. See the
PaymentOption
message for details on the exact set of fields that define apayment_option
. - Is there any dependency between prepayments, deposits, and no-show fees?
- There's no dependency between prepayments, deposits, and no-show fees that are specified in the service feed. You can have valid deposits and no-show fees without having prepayments enabled. However, for either of those three to function correctly, you need to complete your payments integration.
- How are tax fees shown to users?
- If a tax rate is set and payment online is required, tax fees are shown separately from your service costs. They are included in the total price shown to the user.
Sandbox environments
- How do I access the links to the sandbox frontend?
- You can access sandbox links via the Partner Portal > Inventory page.
- Is there a sandbox environment where partners can see their data and use their data to run tests?
- Yes, a sandbox environment is available for you to run end-to-end integration tests. For more information, see our end-to-end testing guide.
- Is there a version of the API that accesses the sandbox environment?
- Yes, enable the Maps booking API (dev) in your Google Cloud project. It's
only accessible to users of the Partner Portal that are automatically allowed
access. Once enabled, all you need to do is change the endpoint of your API
calls to
https://partnerdev-mapsbooking.googleapis.com/
. - What is the difference between sandbox and production?
The sandbox environment is an independent environment that allows you to test changes without impacting your production systems Reserve with Google provides the following pieces of the sandbox environment:
- Sandbox feed dropboxes
- Sandbox booking server configuration
- Sandbox RTU endpoints
- Partner Portal sandbox environment
- Sandbox product front-end
When all of the sandbox environment components are connected to a non-production environment in your systems (e.g. a development or staging environment) you can fully simulate a production environment, without impacting your production systems. Note, the following caveats:
- Connect your staging or testing feeds, booking server, and real-time update APIs to the sandbox environment.
- Provide a subset of real world inventory in your Sandbox environment to test against. This ensures that any edge cases with your inventory are covered.
- A sandbox booking server should never complete booking requests or updates against live inventory. Instead, point the sandbox environment to your staging or test environment.
- Asynchronous bookings should be managed by the sandbox version of your merchant tools to accept/decline bookings. This will allow testing of the BookingNotification real-time update in sandbox.
Partner Portal
Inventory View
- Why are there no results shown after applying filters?
- Check to see if there are typos in your filter values (e.g. trailing spaces).
Additionally, if the inventory is deleted from the feeds, it will not appear
in the search results unless the Integration State =
Deleted
filter is explicitly set. - How do I sort by inventory state?
- To add an inventory state filter, first add a filter for the integration type.
For example, set an integration type filter to
E2E
(end-to-end integration) and then set the Inventory state filter toLive
. For more information on how to set filters, see [here]/maps-booking/partner-portal/inventory#applying_filters).