When booking customers on trips via the G API, you are likely to accept a minimum deposit from the customer when accepting payment. It’s common that you’ll request this minimum deposit alongside the full payment, giving your customers the flexibility in choosing how they pay.

Historically, G Adventures had a flat deposit structure which was the same for all trips and regions. As of January 2019, we have a more robust deposit structure which meets the specific demands of regions around the world.

We’ve done our best to keep the complexities away from the G API, but we recommend reading this quick guide as a means of understanding why we’ve structured data in specific ways.

First and foremost, this document is only applicable if you’re creating bookings and taking payment via the G API. If you’re interested in how to do that, we recommend reading Creating Your First Booking.

When To Ask For Deposits

Logically, you’ll only need to display deposit information for a trip (or trips) the customer is booking at time of payment, and of course, this is only necessary when you are looking to Confirm services. For holding an Option (aka Save My Space), there is no deposit required. As recommended by our best practices (Creating Your First Booking), you should be creating the booking, customers, and the relevant departure services in the G API before getting to the payment page.

Once on the payment page, you can query the departure_services resource you’ve created and look at the deposit attribute. This attribute shows the required deposit for this service, taking into account the departure booked, and the regional requirements based on the primary contact of the booking.

We recommend always reading from this attribute when building a checkout funnel. We expose deposit on the departure, but this does not take into account regional requirements of the customers on the booking and in some cases, may differ. See the next section for situations when using departures.deposit is applicable.

Displaying Deposits Before Checkout

You may wish to display the required deposit for a trip before a customer has even decided to purchase. This can be shown on a trip summary page, in the listing of departure dates, etc.

Currently, it’s possible to get the deposit information for every departure by leveraging the departures.deposit attribute. This will show the specific deposit required to book the departure.

There is one particular restriction to this. If you are a G API partner operating within Germany, Austria, or Switzerland, you are not able to leverage this attribute. This is because due to laws within these countries, the deposit structure is based on the region of the legal entity in which you are operating from. Since a departure resource is agnostic to the details of who booked it (since it’s not a booked service), the deposit amount shown here is one which applies to the regions outside of the aforementioned, and thus, not accurate for them.

There is no way for the G API to identify if a client viewing a resource is from a specific region and that is an assumption we can never make safely. If you wish to display deposit before checkout and are operating in the mentioned regions, you’ll need to calculate it at 20% of the sell price, or provide text which advises the customers they will have full details of deposit ahead of check out (assuming you implement the above suggestions)

Thus, if you’re operating within central Europe, we recommend only displaying deposit terms at payment / checkout. Otherwise, you are able to display before.