Enabling merchant offers on your booking server

If you are completing both an offers and Reserve with Google integration, you are able to connect the two to surface offers within your end-to-end booking flow. If you are unsure if you are completing both of these integrations, or would like to build just one of these integrations, please reach out to your Google business contact.

After you have completed both the offers integration and the Reserve with Google integration, please reach out to your Google technical contact to begin the changes to your booking server as described below.

Booking Server Changes

  • If offer_id (the same offer id provided in the Offers feed) is specified in CreateBookingRequest, ensure the offer is applied to the booking. CreateBooking should work without offer_id specified as well.

  • The Offer that is applied to the booking must be included in the CreateBookingResponse. Only the Offer that is part of the request can be applied to the booking. If no Offer is applied to the booking then this field should be ommitted from the response.

  • If the offer_id does not exist or is not applicable to the requested slot, return OFFER_UNAVAILABLE in the BookingFailure of the CreateBookingResponse. If the time slot is altogether unavailable, return SLOT_UNAVAILABLE instead.

Test Cases

These are the test cases you must complete to ensure your Reserve with Google integration is working with your deals integration. We strongly recommend additional testing based on your specific platform use cases.

  • Book a valid slot with no offer
  • Book a valid slot with a valid offer
  • Book a valid slot that has multiple offers available, selecting a random offer and ensure the correct offer is applied to the booking
  • Book a valid slot with a valid offer, but the offer is outside of the offer redemption hours. This should return OFFER_UNAVAILABLE
  • Book a valid slot with a valid offer, but the offer is outside of the offer redemption date. This should return OFFER_UNAVAILABLE
  • Book a valid slot with an invalid offer, but there is another valid offer at that time. This should return OFFER_UNAVAILABLE
  • Book a slot with an offer that exists for a different merchant. This should return OFFER_UNAVAILABLE
  • Book a slot with an offer that does not exist. This should return OFFER_UNAVAILABLE
  • Book a slot with a valid offer, but the slot is no longer available. This should return SLOT_UNAVAILABLE
  • Book a slot that is no longer available with an offer that is not available. This should return SLOT_UNAVAILABLE
  • Book a slot that does not exist. This should return SLOT_UNAVAILABLE

Once these changes are complete please test your integration in the sandbox environment. After you have completed testing and are confident in the results, reach out to your Google technical contact.