HappenBoard Pro can charge for appointments online through Stripe, when the visitor books. You can take the full price or a deposit, and make the price depend on who is coming and when. Without Pro, the price of a booking type is paid on site.
Online booking payments, person types and pricing rules need HappenBoard Pro. See what Pro adds.
Before you start
- Stripe connected: your keys and the webhook saved under HappenBoard → Settings → Stripe. See setting up Stripe.
- A booking type with a price, in the same currency as Stripe (see the last section).
Take the full price online
The simplest setup: one price, paid in full when the visitor books.
- Go to HappenBoard → Settings → Stripe.
- In the Bookings card, switch on Take booking payments online. It is off by default.
- Click Save changes.
- Go to HappenBoard → Bookings → Booking types and open your booking type.
- In the Scheduling card, fill in Price. Its label shows your currency, such as Price (EUR).
- Click Save.
Until a secret key is saved on the Stripe tab, bookings are still paid on site.
What happens when someone books
- The visitor picks a time and fills in the form. The booking is saved as Pending payment, and the visitor goes to Stripe’s payment page.
- While they pay, the time, its seats and any shared resource stay reserved for them.
- After paying, the visitor comes back to the booking page. Once Stripe confirms the payment, the booking becomes Confirmed and the confirmation email goes out.
If the visitor does not pay, the Stripe page expires after about 30 minutes and the time is offered again, with no email. If Stripe never answers, a booking still pending payment is released after 24 hours.
A booking that costs nothing, for example because a pricing rule makes it free, skips payment. So do bookings you add yourself with New booking on the Bookings screen: they are confirmed at once, with the price due on site.
Take a deposit instead
With online payments on, a Deposit field appears under Price in the booking type.
- Leave it at 0 to take the full price online.
- Type an amount below the price to take it online for each seat. The rest is paid on site, and the help under the field shows the split.
- A deposit equal to the price takes the full price. A deposit above the price cannot be saved.
Requests that need approval: the card is held
On a booking type with Require approval, the card is only held when the visitor books, for the price or the deposit. The request then appears in the Requests tab of the Bookings screen. See approving booking requests.
- Approve request charges the held amount, then confirms the booking. If the charge fails, the request keeps waiting and the customer is told once.
- Decline request, or cancelling the booking, releases the hold. Nothing is charged.
- If a card hold reaches your site after you have declined or cancelled the request, it is released straight away.
Stripe drops a hold after seven days. So Pro declines a request still unanswered six days after it was made: the card is released, the customer gets the decline email, and your site’s admin email gets the list. Cancelling the hold in the Stripe dashboard also declines the request.
Prices per person: the People card
With the People card, below Location in the booking type editor, one visitor can book for a group with different prices. Click Add a person type (up to 10) and fill in:
| Setting | What it does | Default |
|---|---|---|
| Name | What the visitor sees, such as Adult or Child. | Empty |
| Fewest per booking | The least of this type in one booking, from 0 to 50. | 0 |
| Most per booking | The most of this type in one booking. Empty means no limit. | No limit |
| Price each | The price for one person of this type. Empty uses the booking type’s price. | Booking type’s price |
| Takes a seat | Off for someone who does not take a place, such as a baby on a lap. | On |
The booking page then asks Who is coming, with a count for each type, and only offers times with enough seats left (50 at most per booking). The breakdown, such as 2 × Adult, 1 × Child, appears in the emails, on the Bookings screen and on the Stripe payment page. A deposit is still taken per seat.
Pricing rules: change the price by day, season or time
The Pricing rules card, under People, charges more or less at certain times. Click Add a rule (up to 50) and fill in:
| Setting | What it does |
|---|---|
| Name (optional) | For you, such as Weekend surcharge. |
| Applies on | Days of the week, Dates, Months or Weeks of the year, as a range. A range can wrap: Saturday to Sunday is the weekend, November to February the winter. |
| Only at certain times of day | A time window, in your site’s timezone. |
| Host | All hosts, or one. Shown when the booking type has several hosts. |
| For | Everyone, or one person type. Shown when there are person types. |
| Change | Add an amount, Take off an amount or Set the price to, each counted per booking or per person. Or Change by a percentage (20 adds 20%, -10 takes 10% off), or Divide by. |
A rule applies when the booking starts inside it. The price starts at the booking type’s price times the number of people, or each person at their own price. Rules for one person type apply first, to that type’s share. Rules for everyone then apply from top to bottom, each changing the price the rules above left.
Order matters: +20% then +10 differs from +10 then +20%, and a Set the price to lower down replaces everything above it. Reorder with Move up and Move down. A price never drops below 0.
Each booking keeps the price it was quoted, so editing a rule later does not change it. Person types and rules also work when bookings are paid on site.
What the customer sees
- Before choosing a time, the price shows under the service name. With a deposit, it shows the split, such as $65.00 ($20.00 now · $45.00 on site).
- When the price depends on the time or the people, it reads “From” the cheapest possible booking: the people every booking must include, at the cheapest time. With Adult at $50 (at least one per booking) and Child at $20, it reads From $50.00.
- Without person types, times that cost different amounts each show their own price.
- Once a time is picked, the line above the form gives that booking’s price, deposit included. It updates live when the visitor changes the time, the host or who is coming.
The emails, the My Bookings block and the Payment column of the Bookings screen show how the booking is paid. For example: Paid online, Deposit paid online with Balance due on site, Card authorized, Card payment failed, or Not charged: the card authorization is released.
HappenBoard never refunds a booking payment. Cancelling a paid booking frees the time and sends the cancellation email, but the money stays taken: refund it from your Stripe dashboard. Only a card hold that was never charged is released for you.
Use the same currency in both places
Booking prices are typed in the Currency of the General settings, and Stripe charges in the Currency of the Stripe tab. Choose the same code in both. When they differ, the Stripe tab shows a warning, but nothing is converted: with USD in one and EUR in the other, a $65.00 booking is charged €65.00.
If the two currencies use a different number of decimals, as USD and JPY do, online booking payments switch off and bookings are paid on site.
Next steps
- Creating a booking type: set the price, the deposit and approval.
- Approving booking requests: answer requests whose card is held.
- Setting up Stripe: connect your keys and the webhook.
- Shared resources for bookings: share rooms and equipment between booking types.