> For the complete documentation index, see [llms.txt](https://requiply.gitbook.io/requiply-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://requiply.gitbook.io/requiply-docs/knowledge/settings/booking-settings/deposits.md).

# Deposits

Set the refundable security deposit customers pay against damage or late return, override it per product, and refund it in full or in part after the rental.

The **Deposits** page is where you configure the refundable amount Requiply collects from a customer alongside their booking payment as protection against damage, loss, or late return. The deposit on each booking is computed automatically from two inputs: the **organization-wide deposit policy** set here, and an **optional per-product deposit override** that any item group can carry. The combined amount is charged together with the booking, tracked separately from revenue, and can be partially or fully refunded after the booking is complete.

You can find this page under **Settings → Bookings → Deposits**, and per-product overrides on every inventory item's add and edit forms.

Looking for how to give a deposit back to a customer after the equipment is returned? See [Refunding a deposit](#refunding-a-deposit) on this page: the refund is started from the booking, not from this settings screen.

{% hint style="info" %}
Deposits are **refundable** by design. They are not counted as revenue in analytics and dashboards, and they live in their own column on the bookings table so finance reports stay clean.
{% endhint %}

![Deposits settings page](https://572107616-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCrrH3uq16OeTomix4tP8%2Fuploads%2Fgit-blob-29252cef716f1cb4566f91ac750d68fbc3fdb4b2%2Fsettings-form.png?alt=media)

## Why this page matters

Deposits give the business a financial safety net without complicating the headline rental price the customer sees on the client portal. A single setting controls the default for every booking, while individual products that need a higher (or specifically different) deposit can override it per item group without changing the global policy.

This area connects to several parts of Requiply:

* **Inventory** — each item group can carry its own deposit override.
* **Bookings** — the deposit is calculated and stored when a booking is created and shown next to the rental cost.
* **Checkout** (the [client portal](/requiply-docs/knowledge/client-portal/booking-flow.md)) — the deposit appears as a separate line so customers see exactly what is refundable.
* **Payments** — the deposit is added to the amount charged through the payment provider on top of the rental.
* **Refunds** — admins can refund the deposit (fully or in parts, possibly multiple times) from the booking page.
* **Invoices and emails** — the deposit appears as its own line in the PDF invoice and is exposed as `{{bookingDeposit}}` and `{{bookingTotalCharged}}` tokens in booking email templates.
* **Analytics** — revenue figures explicitly exclude deposits because they are refundable, not earned income.

## Who can use this page

* The **Deposits settings page** is part of the organization settings area and is intended for admins who configure how the business operates.
* **Per-product deposit overrides** are available to anyone who can add or edit an inventory item group.
* **Refunding a deposit** is performed from the booking detail page or from the actions menu in the bookings table; it requires access to booking management.

## What you'll see on the settings page

A single form with two fields:

* **Deposit method** — a dropdown with three options:
  * **No deposit** — the default. The business does not collect a deposit.
  * **Fixed amount** — a flat amount added to every booking, regardless of how many items it contains or how long it lasts.
  * **Percentage of rental** — a percentage applied to the rental subtotal of the booking.
* **Deposit value** — only shown when the method is not "No deposit".
  * For **Fixed amount**, this is entered in the organization's currency.
  * For **Percentage**, this is entered as a percentage between 0 and 100. Values above 100 are rejected.
  * The field's label and hint switch automatically based on the selected method.

An informational message at the bottom of the form reminds the admin that **individual products can override this default with their own deposit value on the product page**.

The **Save changes** button is disabled until a real change has been made. **Cancel** reverts the form to the saved values without leaving the page.

### Behavior

* The setting is stored per organization, with a default of **No deposit** until first saved.
* Saving the method as **No deposit** automatically clears the value, so switching back from a configured method cleanly resets the policy.
* On success, a green toast confirms: *"Deposit settings have been saved successfully."* On failure, an error toast is shown and the change is not persisted.

## Per-product deposit override

Each item group can carry a **Security deposit override** that takes priority over the organization policy. This is the right place to charge, say, a $300 deposit on a drone while every other item still follows the global policy.

![Security deposit override field on inventory add/edit](https://572107616-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCrrH3uq16OeTomix4tP8%2Fuploads%2Fgit-blob-788eccb4213bb063583bd5695f427c69dbdf74b3%2Finventory-override-field.png?alt=media)

You can find the field under **Inventory → Add** and **Inventory → Item group → Edit**, in the *Pricing* section.

### What you'll see

* A field labeled **Security deposit override (optional)** that accepts a currency amount in the organization's currency.
* A small hint below: *"Leave empty to use the organization-wide deposit policy. Set a value to override it for this product."*
* A clear button so the admin can wipe an override and fall back to the policy.
* The field is **not required** — leaving it empty means the product uses whatever the policy dictates.

### How the override is applied

* The override is stored per item group. Empty means "use org policy"; a number means "use this exact amount per unit".
* When a booking is created, the override (if any) is multiplied by the selected quantity for that group and added to the deposit total.
* **Overrides always apply**, regardless of the org method. A product with a $300 override still contributes `$300 × quantity` even if the org policy is **No deposit**.
* The org-wide policy only applies to items **without** an override:
  * **No deposit** — contributes 0.
  * **Fixed amount** — added once per booking if at least one non-override item is present (not per item).
  * **Percentage of rental** — applied to the rental contribution of non-override items only.
* A booking-level discount (such as a pricing tier discount) reduces the **percentage base** of non-override items, but **does not** reduce per-product overrides — a merchant who configures $300 of refundable deposit wants the full $300 even if the customer has a discount.

## Deposits in the inventory table

The inventory manage table has a **Deposit** column that surfaces per-product overrides at a glance.

![Deposit column in inventory manage](https://572107616-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCrrH3uq16OeTomix4tP8%2Fuploads%2Fgit-blob-14ef04118260dd3a87d4785acad5cbfe7a6b4aab%2Finventory-deposit-column.png?alt=media)

What it shows:

* For an item group with an override, the override amount is displayed in **orange**, e.g. "$300.00".
* For an item group with no override, the cell shows a muted italic **"Not assigned"** label.
* The column supports filtering through a numeric input (greater than by default), with a filter menu so the user can change the operator.
* Like all configured columns, it is part of the user's table layout and can be hidden, reordered, and resized.

This column is the fastest way for an admin to scan inventory and spot which products carry a deposit override versus which fall back on the global policy.

## Deposits in the bookings table

The bookings data table has a **Deposit** column for spotting deposit amounts and partial refunds across bookings.

![Deposit column in bookings table](https://572107616-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCrrH3uq16OeTomix4tP8%2Fuploads%2Fgit-blob-69909f19136eece375a35db75afe809f1e5263db%2Fbookings-deposit-column.png?alt=media)

What it shows:

* When the deposit is greater than zero, the amount is shown in the organization's currency. If any portion of the deposit has been refunded, the value is rendered with a **line-through** and reduced opacity to signal that part or all of the deposit has been returned.
* When the deposit is zero, the cell shows a muted dash `—`.
* The column supports filtering via a numeric "greater than" input with the menu enabled.
* Like the inventory table, column visibility and order are driven by the user's saved table layout.

## Creating a booking — preview and totals

When an admin creates a booking manually from **Bookings → Add**:

* The booking summary preview shows a **Deposit** line, in orange, whenever the computed deposit is greater than zero.
* The deposit is calculated live from the org policy plus per-product overrides, using the same logic the server uses, so the preview matches the final charge.
* The **total** shown to the admin is `rental subtotal − discount + deposit`, so deposit is visible as a separate component of the total, not hidden inside the rental cost.

When the booking is saved, the deposit is **recomputed on the server** from the authoritative organization policy and per-group overrides. This prevents tampering: the client cannot send a custom deposit value and have it accepted. The amount actually charged to the customer is `rental total + deposit`.

## On the client portal

At [checkout](/requiply-docs/knowledge/client-portal/booking-flow.md) the customer sees a **Security deposit** line whenever the computed deposit is greater than zero, and the same figure is listed on their own booking page afterwards.

![Security deposit on customer cart and checkout](https://572107616-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCrrH3uq16OeTomix4tP8%2Fuploads%2Fgit-blob-6eb34d99f81604295c1cd8a34b09558cb339a186%2Fcustomer-cart-deposit.png?alt=media)

* The label is *"Security deposit"* and a smaller hint reads *"Refundable after items are returned in good condition."*
* The deposit is computed reactively as the customer changes items and dates, so it stays in sync with what the server will finally charge.
* The **total to pay** displayed to the customer is `estimated rental price + deposit`.

This is what makes the deposit feel transparent on the customer side: it is shown as a distinct, refundable item rather than rolled into the price.

## Refunding a deposit

**To refund a deposit:** open the booking, find the *Deposit* section, and press **Refund deposit**. You can also do it from the per-row action menu on the bookings table. A deposit collected on a booking can be refunded in full or in parts, and multiple refunds are supported up to the full charged amount.

{% hint style="warning" %}
**A cancellation never refunds anything by itself.** That includes a customer [cancelling their own booking](/requiply-docs/knowledge/client-portal/customer-accounts.md#cancelling-online) on the client portal: the booking is voided and the stock is freed, and the deposit and any payment stay exactly where they are until someone on your team refunds them here.
{% endhint %}

### Where the refund action appears

![Deposit section on a booking detail page](https://572107616-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCrrH3uq16OeTomix4tP8%2Fuploads%2Fgit-blob-e26fd384b59cb43e32bb6f0f14cc845e9dfb66eb%2Fbooking-deposit-section.png?alt=media)

On the **booking detail page**, the *Deposit* section shows:

* **Deposit charged** — the original amount.
* **Refunded so far** — the running total already returned.
* **Remaining** — what is still on hold.
* A **Refund deposit** button, disabled when the remaining amount is 0.
* If everything has been refunded, the muted message *"Deposit fully refunded."* is shown in place of the button.

In the **bookings table**, the per-row action menu also exposes a *Refund deposit* action when the booking has a refundable amount remaining.

### What the refund dialog shows

![Refund deposit dialog](https://572107616-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FCrrH3uq16OeTomix4tP8%2Fuploads%2Fgit-blob-116d3813646193656c7e39c2bde8238f2aee7814%2Frefund-deposit-dialog.png?alt=media)

When the user clicks **Refund deposit**, a modal opens with:

* A summary of *Deposit charged*, *Refunded so far*, and *Remaining*.
* An **Amount to refund** input pre-filled with the remaining amount, capped between 0 and the remaining value.
* A **Reason / damage note** textarea — optional, free text recorded with the refund.
* A collapsible **Additional actions** section that exposes a **Refund manually (skip payment provider)** checkbox. This is useful when the refund is being handled outside the system (cash, bank transfer, etc.) and only the bookkeeping needs to be recorded.
* A hint that adapts to the selected mode:
  * Provider refund: *"The refund will be processed through the original payment provider. The customer will see the refund in their account within a few business days."*
  * Manual refund: *"No provider call will be made — only records a refund handled outside the system (e.g. cash)."*

### Special case: Pay in person

If the booking was paid via **Pay in person** (what the portal offers customers as *Pay on pickup*), no money ever moved through a payment provider, so the dialog hides the *Additional actions* section entirely and treats the refund as pure bookkeeping. There is no "manual vs provider" choice in that case.

### What happens when you confirm

* Requiply validates the requested amount against the remaining deposit. Refunds that exceed it are rejected.
* For online providers, the refund is attempted against the original payment provider.
* For Pay in person or when manual refund is requested, the refund is recorded without calling any provider.
* On success, the booking's *Refunded so far* and *Remaining* update immediately, and the bookings table reflects the partial-refund styling (line-through value).

### When a refund is refused

A refund that cannot go through says why, so you know whether to retry, record it manually, or look at the booking:

| Message                                                                                                                 | What to do                                                                                                      |
| ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| *This booking has no deposit to refund*                                                                                 | Nothing was collected on this booking.                                                                          |
| *The amount exceeds the remaining deposit (remaining: {amount}). It may already have been refunded from another device* | Reload the booking and check *Refunded so far*. A colleague probably refunded it while you had the dialog open. |
| *The original payment for this booking was not found*                                                                   | There is no provider charge to refund against. Record it with **Refund manually** instead.                      |
| *The payment provider rejected the refund. Try again or record it as a manual refund*                                   | The provider refused. Retry, and if it keeps failing pay the customer outside Requiply and record it manually.  |
| *The refund amount must be greater than zero*                                                                           | Enter an amount above zero.                                                                                     |
| *You do not have access to this booking*                                                                                | The booking belongs to another organization, or your permissions changed since the page was opened.             |

## Invoices and emails

* **PDF invoices** include a *Security deposit* line and, when applicable, a *Deposit refunded* line below it. The grand total includes the deposit.
* **Booking email templates** support two tokens that admins can drop into custom templates:
  * `{{bookingDeposit}}` — the deposit amount, formatted in the org currency. Empty when there is no deposit.
  * `{{bookingTotalCharged}}` — the total charged to the customer (rental + deposit).

See [Email templates](/requiply-docs/knowledge/settings/booking-settings/email-templates.md) for the full list of variables available in templates.

## Analytics: deposits are not revenue

Deposits are explicitly excluded from revenue figures everywhere in Requiply:

* The booking's stored total represents the **rental-only** amount; the refundable deposit is tracked separately and is never added to revenue, in either snapshots or the revenue chart.
* This means an organization with a large deposit policy will not see inflated revenue. Deposits show up only in their own column and on individual booking pages.

When reading dashboards or reports, follow the same rule: deposits are protection money, not earnings.

## Forms and fields

| Field                         | Where                                                                 | Required       | Meaning                                                                                                                    |
| ----------------------------- | --------------------------------------------------------------------- | -------------- | -------------------------------------------------------------------------------------------------------------------------- |
| **Deposit method**            | Settings → Bookings → Deposits                                        | Yes            | **No deposit**, **Fixed amount**, or **Percentage of rental**. Drives whether and how the policy contributes to a booking. |
| **Deposit value**             | Settings → Bookings → Deposits (hidden when method is **No deposit**) | Yes when shown | The flat amount or percentage. Percentage must be between 0 and 100.                                                       |
| **Security deposit override** | Inventory → Add and Inventory → Item group → Edit                     | No             | Per-item-group override in the org currency. Empty = use org policy; a number = always apply this amount × quantity.       |
| **Amount to refund**          | Refund deposit dialog                                                 | Yes            | Between 0 (exclusive) and the remaining deposit.                                                                           |
| **Reason / damage note**      | Refund deposit dialog                                                 | No             | Free text stored with the refund record.                                                                                   |
| **Refund manually**           | Refund deposit dialog                                                 | No             | Skips the payment provider; records the refund as bookkeeping only. Hidden for Pay in person.                              |

## How this page connects to the rest of Requiply

| Feature                                                                     | How deposits affect it                                                                                                                                                                      |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Inventory**                                                               | Item groups carry an optional override. The override is visible on the inventory table and editable on the add/edit forms.                                                                  |
| **Bookings**                                                                | The deposit is computed at booking creation, stored on the booking, and shown as a column and detail row. Refunds update the refunded total.                                                |
| [**Client portal**](/requiply-docs/knowledge/client-portal/booking-flow.md) | A reactive *Security deposit* line is shown to customers at checkout, and the displayed *Total to pay* includes the deposit. The deposit is also listed on the customer's own booking page. |
| **Payments**                                                                | The amount charged to the customer = rental + deposit. The deposit is included as a dedicated line item with the payment provider where applicable.                                         |
| **Refunds**                                                                 | Refunds can be partial or full, repeated up to the remaining amount. Online providers receive a refund call; manual or Pay-on-pickup refunds are bookkeeping only.                          |
| **Invoices**                                                                | PDF invoices include *Security deposit* and *Deposit refunded* lines when applicable.                                                                                                       |
| **Email templates**                                                         | Tokens `{{bookingDeposit}}` and `{{bookingTotalCharged}}` are available in booking email templates.                                                                                         |
| **Analytics**                                                               | Deposits are **excluded** from revenue figures — the booking total is rental-only by design.                                                                                                |

## Common scenarios

### New business setup

Open **Settings → Bookings → Deposits** and pick a method. For most rental businesses, **Percentage of rental** (for example 20%) is a sensible default because the deposit scales with the value of the booking. Save the form and the policy applies to every new booking immediately.

### High-value item

A specific product (say a drone or a generator) needs a larger, fixed deposit. Open the item group's edit page and set the **Security deposit override** to the amount you want, then save. From that moment, every booking containing that item will charge `override × quantity` as part of its deposit, on top of whatever the org policy contributes for the remaining items.

### Item that should never have a deposit

If the org policy is **Percentage** or **Fixed** but one specific item should never carry a deposit, set the override to `0`. The customer will then be charged `0 × quantity` for that item's deposit contribution, regardless of the policy.

### Customer returns an item with minor damage

Open the booking, click **Refund deposit**, and reduce the *Amount to refund* below the remaining value (for example, withhold $50 for damage and refund the rest). Add a damage note in the *Reason* field for the record. After the refund processes, the *Remaining* drops to the withheld amount, and the bookings table shows the deposit cell struck through.

### Customer paid in cash on pickup, deposit needs to be returned

For a Pay in person booking, open **Refund deposit**. The dialog hides the manual/provider choice and treats the entire refund as bookkeeping — the system records that the deposit was returned without calling any payment provider.

## Tips and cautions

{% hint style="success" %}
**Tip:** Configure the org-wide policy early. It applies to every new booking immediately, and it is much easier to set a sensible default once than to override it on every product.
{% endhint %}

{% hint style="success" %}
**Tip:** Use per-product overrides sparingly, only for items whose risk is genuinely different from the rest of the catalog. A consistent global policy is easier to communicate to customers.
{% endhint %}

{% hint style="warning" %}
**Heads up:** Changing the org-wide policy affects **new** bookings only. Existing bookings keep the deposit amount they were created with — the policy is captured at booking time, not re-applied retroactively.
{% endhint %}

{% hint style="warning" %}
**Heads up:** Deposits are **excluded** from revenue analytics by design. If you are reconciling totals against your payment provider's dashboard, remember that the provider's incoming totals will include deposits, while Requiply's revenue figures will not.
{% endhint %}

{% hint style="warning" %}
**Heads up:** Per-product overrides are **always** applied — even when the org-wide method is **No deposit**. If you want to fully disable deposits for a campaign or season, clear the per-product overrides as well, not just the policy.
{% endhint %}

{% hint style="warning" %}
**Heads up:** The percentage method's base is the rental contribution of non-override items only, and it respects booking-level discounts. Overrides do **not** scale with the discount.
{% endhint %}
