By the end of this guide, you'll have one of your places (or services) set to Accept payments, with a charge type, a deposit amount (if you chose deposit), a booking deadline, and a clear understanding of what the guest sees and what shows up in your admin afterwards.
What you'll need
- A payment gateway set up on your account — see Payment gateways. A gateway in test mode is enough to try the whole flow before you go live.
- A property under Places or a service under Services that's already saved
- About 5 minutes
- A pricing decision: charge the full amount upfront, or ask for a fixed deposit?
- A working "pay to confirm" flow on your widget
- Bookings that arrive paid (or with a deposit and a deadline for the rest)
- One Payments table on each booking showing everything you've collected, online and offline
Step 1: Open the property → Bookings section
Sidebar → Places → your property (or Services → your service). Scroll to the Bookings section.
The section has two columns side by side:
- Widget behaviour — three options: Availability only, Accept bookings, Accept payments
- Booking type — Instant / Request
By default new properties are on Accept bookings + Instant.
Step 2: Switch behaviour to Accept payments
Click Accept payments in the Widget behaviour switch. Two things happen straight away:
- Booking type locks to Instant (the Request option greys out). Guests pay to confirm — paying is the vetting step.
- A new Payments sub-section appears below.
If your account doesn't have a payment gateway yet, you'll see a note — "No payment gateways are configured on your account yet." — with a Set up payment gateway button. Click it, set up a gateway (see Payment gateways), and come back.
Step 3: Pick a charge type
The Payments sub-section shows the Payment gateway picker first — leave it on Account default unless you want to use a different gateway for just this property.
Below it is a switch with two options:
Full amount
The guest pays the entire booking total at checkout. The booking arrives paid, dates blocked, money on its way to your account.
Use it when:
- The total is comfortable for guests to pay upfront (small services, day rentals, tours)
- You don't want any chasing-up to do after the booking
- Your cancellation policy is generous enough that prepayment isn't risky
Deposit
The guest pays a fixed deposit at checkout. The booking arrives marked deposit paid, dates blocked, and you collect the rest later with a payment link.
When you pick Deposit, an extra field appears: Deposit amount. Type the amount (in your property's currency). Examples:
- Your total ranges from 3,000 to 8,000 CZK depending on length → set the deposit to 2,000 CZK: everyone pays a flat 2k now, the balance later
- Tour package at €120 → a €30 deposit locks the slot, balance on arrival
Use it when:
- Totals are large enough that asking for the whole sum upfront would scare guests off
- You want to filter out non-serious bookings without tying the guest to the full amount
- You're happy collecting the rest by hand (bank transfer, cash, a second card payment)
Step 4: Set a booking deadline (optional)
Below the charge type is Booking deadline — a number, in hours. Default is 0.
This is the cutoff by which guests must finish paying. At 0, dates stay bookable right up until the start time. At 48, they stop being bookable 48 hours before — handy if you need lead time to prepare.
Step 5: Notifications
The last setting in the section is a Notify me toggle for new-booking emails. With it on, you get an email every time a booking comes in (paid or deposit). The email shows the amount paid, the remaining balance (if it's a deposit), and a link to the booking.
Step 6: Save and test
Top of the page → Save. Reload your widget. The booking dialog now shows a payment step on the summary screen.
To test the whole flow end to end (with the gateway in test mode):
- Open your public widget (use View public widget on the Widget edit page)
- Pick dates → Make a reservation
- On the summary step — Full amount shows one total; Deposit shows the total plus a short line: "You pay :deposit now. The remaining :remaining will be collected before your stay."
- Click Pay now — a new tab opens to the payment page
- Use the test card
4242 4242 4242 4242, any future expiry, any 3-digit CVC - Submit — you're sent back to a cabintale success page
- Back in admin: the booking is now in your Bookings list with the paid amount shown inline; open it and the Payments table lists the transaction
What the guest experiences
| Stage | Full amount | Deposit |
|---|---|---|
| Summary screen | Total + price text | Total + a line explaining the now/later split |
| Pay button | Pay now | Pay now |
| Payment page | Booking total | Deposit amount |
| Success screen | "Payment successful — Thanks, your payment has been received." | "Deposit received — Thanks, your deposit has been received. The remaining balance is due later." |
The success screen, the booking dialog, and the payment page all show in the widget's language. Set up a Czech widget and the whole flow — including the payment page — is in Czech. 34 languages supported.
What you see in admin: the Payments table
Open any booking that has online payments. The Payments section shows everything in one table:
- Online payments at the top: amount, date, type (Card), what it was for (Deposit / Full amount / Balance), and a status — Succeeded, Pending, Failed, or Expired
- Manual payments you've recorded (bank transfer, cash) below, in the same table
- A summary row at the bottom shows To be paid — the real remaining amount (total minus every payment, online and manual combined)
Collecting the balance: payment links
When a guest has paid a deposit, you still need to collect the rest. The Payments section has two buttons next to + Add payment:
- Payment link — creates a link for the current remaining (total minus everything paid so far). Send it to the guest by email or SMS.
- Pay deposit link — only shows if the property is on Deposit charge type and there are no payments yet. Use it when a guest abandoned the dialog and you want to send them a fresh link.
Click either one and the link is copied to your clipboard automatically — no popup, no email is sent for you. The button just flips to "Payment link copied" for a few seconds. Paste the link into your reply.
The guest opens the link, sees a payment page in the language of the widget they booked from, clicks Pay, and pays. Your booking updates within seconds.
Mixing online and manual payments
A common scenario:
- Guest pays a 2,000 CZK deposit online through the widget
- Two weeks later they pay 4,000 CZK by bank transfer — you record this with + Add payment, type Transfer
- Total booking: 6,800 CZK. Remaining: 800 CZK
- You click Payment link — it's created for the 800 CZK still owed
- Guest pays the 800 through the link. Booking is fully paid.
The remaining amount is always live: it counts both online and manual payments every time, so a payment link is always for the right balance.
Removing a pending payment
If you created a payment link by mistake (wrong amount, wrong guest), open the booking → Payments table → find the Pending row → click the Delete icon. Confirm, and the payment is removed — the link stops working immediately.
Succeeded payments can't be deleted. To give a guest their money back, use the Refund action on that row instead — see Refunds and cancellations.
Switching back to Accept bookings
You can do this anytime: open the property, switch Widget behaviour back to Accept bookings, and save. Existing payments aren't touched — past transactions and the Payments table still show. New bookings just go through the non-paying flow.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Accept payments is greyed out / Save fails | No active payment gateway on your account | Click the inline Set up payment gateway button and finish setup |
| Guest pays but the booking stays Pending in admin | The confirmation from the gateway didn't reach cabintale | Open Payment gateways and re-check your gateway connection; the payment usually catches up on its own within a few minutes |
| Guest sees the payment page in English on a Czech widget | The widget's language wasn't set to Czech | Set the widget's language to Czech (Widgets → edit → Language); new bookings then carry it through |
| Payment link page shows the wrong remaining amount | The page was open before you added a manual payment | Refresh the page — the amount recalculates live |
| Two guests both book the same dates | Unfinished payment attempts don't hold the dates; whoever pays first wins | This is intentional — payment attempts can fail, so dates aren't locked speculatively. The guest who doesn't get the dates sees an error after trying to pay |
| I want a request-mode payment flow (vet first, then charge) | Not supported — payments always use Instant | Use Accept bookings + Request mode and collect payment by hand once you've confirmed |
Related guides
- Payment gateways (account-level setup) — Payment gateways
- Stripe setup (Stripe-dashboard side) — Stripe setup
- Refunds and cancellations — Refunds and cancellations
- Instant vs. Request booking — Instant vs. Request booking
- Booking deadline — Booking deadline