Getting started with Holdback
Last checked 4 November 2026. Read this once and you shouldn't need to ask us anything.
New to Shopify apps? Set up Holdback, step by step walks through every click, with what you should see after each step. This page is the short version.
What Holdback does
The customer pays the hire fee at checkout. The deposit is saved on their card, not taken, as the product's notice explains. Eligible late days are kept through Keep a late fee for eligible late days, whether the item is still out or back. It's back records a return; it does not take a late fee. Damage on a saved-card hire is a claim the customer approves and pays themselves. An extension fee is paid by payment link, never from the saved card.
Payment providers
A deposit is a deferred payment, so your store needs a payment provider that can save a card for later. Shopify lists four: Shopify Payments, PayPal Express, Adyen on Shopify, and Stripe (only for some merchants). Local payment methods such as Klarna or iDEAL can't be used on a product with a deposit; your customer pays by card or a wallet such as Shop Pay, Apple Pay or Google Pay instead. Holdback checks for Shopify Payments, or PayPal Express with subscriptions on, and shows a red banner if it can't see either (section 9).
1. Turn Holdback on in your theme
Today → Setup → Open theme editor → Save. That's it. The Holdback deposit block is already switched on when the editor opens; saving is what keeps it.
Without this, nothing appears on your product pages and no deposit reaches checkout. If you ever want it gone, use the same toggle — Holdback never writes to your theme, so switching it off leaves nothing behind.
2. Add your first deposit
Charges → Add a deposit → pick the items → set the numbers → Apply deposit.
- Deposit — the most you can ever charge for that hire. Your customer agrees to it at checkout.
- Hire period — how long they keep it. Sets the due-back date.
- Inspection window — how long you need after it comes back to check it over.
- Latest charge (closed until you open it) — the date on your customer's checkout. It is hire period + inspection window unless you change it. Finish before it, always: see "the date" below.
- Late fee per day (optional) — what a late return costs a day. It's agreed at checkout and kept through Keep a late fee for eligible late days, whether the item is still out or back.
- How the hire fee is paid — All of it at checkout; or One deposit per booking (Cowlendar), for booking apps that put a whole booking on one cart line. Hires of different lengths are booked separately, because an order has one due-back date. Your product's own price stays the hire fee. Holdback adds the deposit on top at checkout.
The date, and why it matters
Checkout shows your customer a date and says their card will be charged on it. That is Shopify's wording and we cannot change it. It's only the latest date anything could be taken, and only if something is owed.
- Holdback releases a deposit that is still open the day before that date, if no problem has been recorded.
Holdback can release sooner than that date. When the return date (the booked return, if your booking app gave one) plus the inspection window comes more than a day before the latest charge date (a booked return, or a latest date you set later), and nothing's been recorded on the rental and no claim is waiting, Holdback emails you the day before ("#1009's deposit releases tomorrow unless you record a problem"), when your store has an email address and a sender set up, and then releases it, as "It's back: Fine" would. For late days, use Keep a late fee before then: once the deposit is released, a late fee can't come off the card. A claim for damage or a non-return can still be sent after. Your customer's email and deposit page give them the same date.
Finish every deposit before the latest charge date, and take any late fee before the deposit is released. After the date, where the order still owes the deposit, Shopify marks it overdue and lets the full deposit be collected from the order page with no limit, no reason and no email — see the warning under "Taking a charge".
3. What your customer sees
The product page shows the hire fee, the deposit, the daily late rate if one applies, and the full agreement. A separate deposit line follows the hire into the cart. The notice states that the deposit is saved on the card and not taken. The customer's agreement and its date are kept with the order.
Checkout has the hire fee due today and the deposit due later. Its date is the latest date for an eligible saved-card keep, not a promise that the whole deposit will be taken. An order placed under older wording keeps that agreement.
The first email links to the customer's deposit page, with the due-back date and status. Later emails say what was kept from the deposit and why, or what was released or refunded. Damage on a saved-card hire needs a separate approval and payment.
Add the deposit link to the order status page
This needs Shopify's new customer accounts.
In Shopify, go to Settings > Checkout and press Edit on your checkout configuration. At the top of the editor, switch the page to Order status, then choose Add block > Holdback deposit link > Save.
Customers get the same deposit-page link in their emails whether or not you add the block.
4. Keeping late days
Keep a late fee is separate from It's back. For a hire that is at least a whole day late, choose the number of whole days to keep. The amount is the agreed daily rate for the order times those days, capped by what is left of the deposit; days already paid for cannot be kept twice. The panel shows the calculation before you confirm. There is no free amount or customer-facing reason to type. Recording that the item came back does not take a late fee.
If the saved card cannot be used, including after its latest date, the eligible fee goes by payment link. Your customer pays on Shopify's payment page. Holdback must be able to email the customer before keeping money; a missing or suppressed customer address or unavailable sender stops the keep before any money moves.
Evidence keeps the agreement, recorded payments, reasons, emails and photos together. Take handover and return photos for each hire.
Never use Shopify's "Collect payment" button
Your Shopify order page has a Collect payment button beside the balance. Don't.
| Charging in Holdback | Collect payment | |
|---|---|---|
| Amount | At most the agreed late fee, and never more than the deposit | The whole balance |
| Reason | Required, shown to the customer | None recorded |
| Your customer | Emailed the amount and reason | Told nothing |
| Evidence pack | Everything in one PDF | The charge isn't in it |
A charge nobody explained, with no email, is the one a bank reverses.
5. Damage, loss and non-return: a claim
Rentals → open the rental → Take money → Send a damage claim. Say what happened, list the estimate line by line, and tick the photos to send. Holdback releases the deposit, adds the estimate to your customer's order, and emails them the estimate with a link to their claim page, which shows the photos you sent. There they tick I approve this claim and press Approve and pay, which takes them to Shopify's own payment page, or press I don't agree and write to you. It's never taken from their saved card by Holdback. It can't be more than what's left of the deposit, and if the repair costs less you refund the difference from the claim. While it's open, don't press Collect payment on the order in Shopify: it would take the claim from their saved card without their approval. Damage, loss and non-return has the detail.
6. Releasing, and cancelling
The returns queue
Hires past their due-back date are listed under Overdue on Today and on Rentals. It's back records the condition and return date. Recording an overdue return takes no late fee; Keep a late fee is the separate action before finishing the deposit. For an on-time return with nothing owed, press Yes, all fine to release the deposit; if something is wrong, press No, there's a problem. Damage uses a claim; an eligible non-return offers a confirmed keep under the agreed terms.
After a partial keep, Release the deposit ends the deposit. It does not collect an extension fee. Extension fees use a payment link. An open claim or unresolved payment can require attention before finishing.
One thing does stop it. Shopify only lets an app read orders from the last 60 days unless you've approved full order history, and a release has to read the order to reduce it. On a hire older than that, Holdback refuses and tells you to open it from your Shopify admin and approve the access it asks for — then the release goes through.
Booking cancelled cancels the Shopify order, optionally refunds the hire fee, and releases the deposit. Use it when a booking app cancels a booking but leaves the Shopify order standing.
A cancel in Holdback doesn't change bookings in your booking app. If you use one, free the dates there yourself.
If you cancel an order in Shopify's own admin while a deposit is still open, the customer's card stays attached to the order, so release the deposit in Holdback first, or use Booking cancelled.
7. What happens without you
- On hires longer than two days, your customer gets a reminder two days before the item is due back.
- A deposit still open is released the day before the latest charge date, if no problem has been recorded.
- Hires past their due-back date are listed under Overdue on Today, and you get one email a day while any are waiting (switch it off under Settings → Reminders). No late fee is taken merely by recording a return.
- An unpaid claim: your customer is reminded 3 and 7 days after you send it, and you're emailed at 14. Change the days under Settings → Reminders. No reminders while your customer has told you they don't agree.
- You get an email three days before a deposit's date.
- Overdue hires are flagged in red on Rentals, and a late fee is suggested if you've set a daily rate.
- Once a month, a summary of what you recovered.
8. Optional extras
Each is off or automatic until you choose otherwise.
- Damage waiver — sell cover for accidental damage. Off by default; you must publish one product yourself before customers see it.
- Selling in person — Shopify POS can't save a card for a deposit. Holdback stops requiring one at the counter and lists those sales separately.
- Booking apps and multi-day hires — one deposit per booking rather than per item, and booked dates on the rental. Also Book That App.
- Long hires and booked dates — when customers book months ahead.
- VAT — who calculates it and what happens when you take a late fee or an extension fee.
9. If something looks wrong
"This store can't offer deposits at checkout yet" — Holdback can't see Shopify Payments, or PayPal Express with subscriptions on, on your store. Deposits are a deferred payment and need a provider that can save a card (see "Payment providers" at the top). Settings → Payments. On Adyen on Shopify or Stripe, email us.
The deposit notice isn't on my product page — the theme embed isn't saved (step 1), or the product has no deposit rule yet (step 2). If both are done, check the product is on your Online Store.
A charge was declined — the rental says so. It offers Ask for a new card. Shopify sends its own secure email; you never handle card details. Once they update it, press Resume.
A customer is disputing a charge — Avoiding chargebacks has what to send and how.
Holdback refused a charge — When Holdback won't charge lists every refusal and what to do instead.
Getting help
For every screen, setting and button in detail, read the Holdback guide, or download it as a PDF.
Email support@holdback.co.uk. We aim to reply within one working day, UK time. There's a person at the other end, and "this wording confused my customer" is a good enough reason to write.
Shipping on a hire
If a hire order has a shipping rate, Shopify puts the shipping into the later balance with the deposit, not into what your customer pays at checkout. So the order's balance is the deposit plus the shipping. Holdback's limit is still the deposit your customer ticked: it doesn't take the shipping from the saved card, and the deposit limit your customer sees does not include it. When the deposit is released, only the deposit comes off the order: the shipping stays owing on it, and collecting it is up to you in Shopify, as you normally would. Holdback tells you on the rental, and tells your customer, that the shipping is still due as agreed at checkout. While the shipping is still owing, a late fee or a claim on that order would pull the shipping in with it, so Holdback leaves them for later: release the deposit, collect the shipping, then take the fee. That includes the Local delivery rate you add for hires.
One case differs: an order placed in a different currency from your store's, or one Holdback picked up after a reinstall, may show the order's balance as its limit until Holdback can confirm the deposit; Rentals says so on that order.
If you need delivery paid, sell it as an ordinary item in the cart (items with no purchase option are paid at checkout) or build it into the hire fee. Rentals tells you on each order how much shipping sits on its balance, or says when it couldn't tell.
If you give free shipping above an order total, Shopify counts the whole cart toward it, including the deposit, so a hire can reach free shipping earlier than the hire fee alone would. Shopify decides how the cart is counted, and Holdback has no say in it. If that isn't what you want, base your free shipping rate on something other than the order price, such as weight.
Local delivery for hires
Holdback hides Shopify's built-in Local delivery on hire items, because Shopify can't edit those orders once they're placed. You can turn this off in Holdback's Settings, under Local delivery for hires.
Shopify doesn't let any app change an order sent by its own Local delivery, so Holdback couldn't release the deposit on one. Holdback keeps Shopify's Local delivery off hire orders by itself, and shows your own Local delivery rate on them instead, for the postcodes you deliver to. Two steps, both yours. First, add the rate: in Shopify go to Settings, then Shipping and delivery, open the zone or market that covers where you deliver, choose Add rate, name it exactly Local delivery, set your price (0 for free delivery) and save. Then in Holdback's Settings, open Local delivery for hires, enter your postcode areas and press Keep local delivery for hires. Everything else you sell keeps Shopify's Local delivery as it is. A cart with a hire and other things in it follows the hire rule.
Uninstalling Holdback
If you uninstall Holdback, your hire products can be bought without a deposit until you reinstall or remove them. Holdback emails you an export of every open hire when you uninstall, and deletes your data 48 hours after you uninstall. Save the export.
Cancellations
Online cancellation is on by default for new shipped hires whose checkout agreement includes the cancellation terms. The deposit page is linked in the order emails. Customers can also reach it from their order status page once you add Holdback's Holdback deposit link block in Shopify's checkout editor.
Customers can cancel online when the order is sent to them: with a booked start from your booking app, until the cut-off you set (never later than 30 days after the order); with no booked start, until you mark the order fulfilled, and never later than the hire's due-back date or 30 days after the order, whichever is sooner. Orders the customer collects, orders delivered by local delivery (Shopify's or Holdback's own rate), and any order that mixes those with shipping show Ask to cancel instead, and you decide. Mark orders as fulfilled when you send them: a customer can cancel online until you do.
Settings → Cancellations sets the cut-off before a booked start: 48 hours by default, or a whole number from 0 to 720 hours. The deadline is capped at 30 days after the order. The cut-off hours setting applies only to booked hires. Orders without a shipping rate and orders mixing booked and unbooked hires do not get online cancellation terms. If you hand items over at your shop, mark the order fulfilled at the moment of hand-over.
Holdback checks Shopify's fulfilment status when the customer presses Cancel this hire and again immediately before releasing the deposit. Once any part is fulfilled, online cancellation is unavailable. A return, an open claim or a payment already in progress prevents online cancellation.
Choose Refund everything they paid, Keep a fixed cancellation fee, or Keep a percentage of the hire fee. The refund choice applies to both booked and unbooked hires; the default returns everything paid, including shipping and tax. The fixed fee is per order. Neither fee can be more than the hire fee paid, or come from shipping, the waiver or a deposit. A fee in another currency uses the order's rate.
The customer sees the deadline and what they will get back before confirming. Cancelling cancels the whole order. For new shipped hires with no booked start, after the window or once sent, the page offers Ask to cancel, which asks you and cancels nothing, until the due-back date, then asks them to contact the shop. Booked hires with direct cancellation terms keep their existing contact-shop message after their online window closes or the order is fulfilled. Earlier hires without the new cancellation terms keep Ask to cancel. Changing settings does not change an existing agreement.
If you refund or remove an item from an order that has a deposit, type the refund amount in the same refund. Shopify's refund form starts at 0.00 and shows a negative "Outstanding balance". Pressing Refund with 0.00 removes the item and quietly takes its price off the deposit, so the order then owes less than the deposit and Holdback can't release it.
A refund by amount doesn't recompute tax. Check your bookkeeping for the refund. Holdback makes the refund as one amount to the customer's original payment, after the order is cancelled, so Shopify may not show tax, shipping or products on separate lines of that refund. Look at the order after your first cancellation to see how it reads in your reports. A cancel in Holdback doesn't change bookings in your booking app. If you use one, free the dates there yourself.