Tours and Attractions User Guide

Create a seamless Tours and Attraction reservation interaction between customers and merchants by implementing with Groupon!

The set of APIs allows for the following use cases:

  • Date/time based ticketing
  • General admission

Integrating for Tours and Attractions reservations:

  • Security - Details regarding Security, Authentication, Polling and other technical requirements.
  • Availability- Groupon will periodically call your system to update our product availability cache every 60 minutes.
  • Availability Check - Real time availability check is performed prior to checkout to confirm availability.
  • Create Reservation- Create reservation for a product once availability has been confirmed.
  • Fulfillment - Once payment has cleared, Groupon will notify your system that an order is ready for fulfillment.
  • Redemptions - Update reservation statuses after a customer's reservation attendance.
  • Cancellations - When a reservation is canceled, then Groupon will use this endpoint to inform your system of cancellations.
  • Status Update - Notify Groupon of any changes to a reservation initiated from your system (i.e. cancellations and etc).

The top-most diagram on the right details the data flow from the initial linking of a product between our systems upon a customer’s purchase and voucher redemption.

Customer Experience and Purchase Journey

Groupon customers are required to pay for their reservation upfront. Here is a typical Tours and Attractions purchase journey would look like:

  1. Views connected deals on Groupon.
  2. Checks availability on a deal.
  3. Selects an available date, party size and preferred time.
  4. If required, enters the details of the party size (for example, 2 adults).
  5. Continues to payment to purchase the deal.
  6. Presents the ticket/voucher to the merchant to redeem the deal.(A ticket/voucher appears in customer’s MyGroupons after purchase.)

Redemption Experience and Journey

You are expected to provide barcodes for each person in the purchaser’s party within the Reservation Fulfillment API response (reservedUnits[].details.barcodes). Groupon wil use this data to generate vouchers with barcodes for customers to use at the merchant’s location. Here’s what a general redemption journey will look like:

  1. The customer walks in to the merchant during the appointment slot, tells the merchant they have a voucher, and that they want to use it.
  2. A merchant operator must be able to check in the customer using a POS device (for example, a barcode scanner) software installed on the merchant POS system with date, start time, and tour.
  3. You must have logic in place, or build the logic, to enable merchants to send a redemption signal from your software installed on the merchant POS system to your servers.
  4. You must send a redemption signal to Groupon on the Groupon patch bulk unit endpoint.

Example Scenario:

  1. On March 1, a user buys a Groupon deal and books a museum tour for March 13.
  2. On March 13, the customer visits the merchant. The merchant scans the barcode indicating customer redemption, using the partner’s system. The redemption signal is sent to Groupon by the partner.

Requirements:

  • Groupon generates a customer service ID that is sent to you in the Create Reservation and Reservation Fulfillment requests. Groupon expects you to send back your customer service ID in the response. This customer service ID is what Groupon provides to the user in the user's confirmation email. You should store the mapping between the Groupon customer service ID and any ID that you use to identify a particular order. This would be useful in scenarios where your team needs to engage Groupon customer support and trigger any refunds.
  • You must provide a barcode for each person in the purchaser's party (if applicable) in the Reservation Fulfillment API response (reservedUnits[].details.barcodes as per the specification).
  • Groupon creates the ticket/voucher template and inserts the barcodes you provide. The ticket/voucher is then available to a purchaser on MyGroupons.
  • You must implement logic to check if a Groupon-initiated purchase cancellation request is valid within the policy of the merchant, and you must return a purchase cancellation success or failure response in the Reservation Cancellation API. If this is not possible, then the deal or booking should be the final sale.
  • When a user selects and purchases several units in the iFrame for a Tours and Attractions deal, you should send the details of the user’s booking in the serviceTitle field. The serviceTitle field is displayed to the user before they finalize their purchase. The standard format is “[Service] with [Provider Name] on [Date]” (for example, “One-hour sightseeing riverboat cruise for two with Riverboat Sightseeing Tours on 3/12/20”).
  • You should assume all segments included in the bookings are for the same date/time when generating the serviceTitle.
  • When a user selects and purchases several units in the iFrame, you should return 1 as the quantity for the reservation. The price is aggregated in the priceSummary (see the Reservation Check Availability for more details. Even when a user selects several segments in the iframe, the Check Availability call should return a single unit with the aggregated price in the data[].priceSummary field. You can assume the data[].quantity field in the request will be 1.