Enabling payments

As part of Reserve with Google, you can opt in your merchants to receive payment from users when they make a booking / appointment reservation. Google works with payment processors to set up tokenization. Payment processors then use unique tokens to securely pay merchants.


For your merchants to receive payments through Reserve with Google, you must meet these requirements:

  1. Use a supported payment processor

  2. Accept tokenized payments

Additionally, you must ensure opted in merchants are able to receive payments from you.

Setup overview

You can enable payments for some or all of your merchants. To set up payments you take 2 separate steps, as outlined below.

1. System configuration

To enable payments for any merchant, you must first ensure your system can accommodate the workflow for receiving payments via tokens. The diagram below shows the flow of activities between users, you (the scheduling partner), Google, and the payment processor.

Figure 3: Payments via tokenization sequence diagram

2. Merchant-level opt-in

For each merchant you'd like to receive payments, you take the following steps in your merchants feed:

  1. Send Google their unique public / publishable key in the PaymentProcessorConfig message. Google passes this key to payment processors so they can identify which merchant they should pay.
  2. Populate the payment_processor_config field.


  • A payment must be for 100% of the service cost amount. In other words, services must be paid in full at the time of the booking.
  • Reserve with Google generates tokens that are one-time use only.
  • Merchants are responsible for handling cancellations and refunds initiated by the user.
  • For a booking that involves payment, Reserve with Google sends a payment_method_token as part of the CreateBookingRequest. It also sets the CreateBookingRequest.payment_information.payment_processed_by field to PROCESSED_BY_PARTNER.
  • You must send changes to a payment status (e.g. the merchant refunds a payment) to Reserve with Google via the Maps Booking API UpdateBooking request. Set update_mask to booking.payment_information.prepayment_status. Currently, only partner initiated refunds are supported (i.e. an update with PrepaymentStatus = PREPAYMENT_REFUNDED).
  • The enum value CANCELED_AUTOMATIC_REFUND is deprecated for both Maps Booking API and gRPC templates. A cancellation where the refund should be processed is now denoted as BookingStatus = CANCELED, PrepaymentStatus = PREPAYMENT_REFUNDED.

Have questions?

Be sure to check out our FAQs.