Equipment Rentals
Rent equipment by the day, week, or month — reservations, deposits, late fees, cycle billing, and automatic invoicing — with a reservation calendar and customer portal.
The Rentals module turns reusable equipment into a paid, time-based offering. A rental is the paid cousin of an equipment loan: same reserve-and-return shape, plus rates, deposits, and invoicing.
Rentals are their own subscription module. If you only loan equipment for free, you don't need it — use loans in Inventory instead.
Starting a rental #
Rentals → Rental Agreements → New rental agreement. The same button is on Rentals → On Rent, which is the list of units that are out right now.
Picking a rental up checks its units out, so rented equipment also appears in Inventory → Checkouts — tagged with the agreement number it went out under. A plain checkout with no agreement reserves nothing and charges nothing, which is the reason to make an agreement whenever dates or money are involved.
In this section #
Detailed guides for everything covered here:
- Rental Agreements — A Rental Agreement tracks the full paid-rental lifecycle — from draft through reservation, pickup, return, and final close-out — and generates a Customer Invoice with the actual duration, late fees, and any damage charges when you close it.
- Rental Rates — The per-period price you charge to rent a Product — daily, weekly, or monthly — optionally overridden for a specific customer or location, with the most specific active rate filling in a rental line's rate when it is reserved or picked up.
Rental rates #
Define rates per Product for daily, weekly, and monthly periods, with customer- or location-specific overrides. The best matching rate is snapshotted onto the agreement when you reserve, or at pickup for a line still without a rate.
If no rate matches, the rental is refused at reserve, at pickup and again at invoicing rather than quietly billing $0 — the message names the product and the period that is missing. To rent something out free of charge on purpose, type a rate of 0 on the line; that is a decision the system records and keeps. See Rental Rates.
The rental lifecycle #
A rental agreement moves through: Draft → Reserved → Picked Up → Returned → Closed (or Cancelled). Reserving holds the equipment for the date window; picking up checks the units out; returning checks them back in; closing generates the invoice. You can also return part of a rental — the agreement sits at Partially Returned until the last unit is back, and each returned unit stops billing on its own return date.
Availability and double-booking #
Reserved and picked-up rentals hold their equipment for their dates, and loans are counted the same way: when you Reserve, each line is checked against what other reserved or picked-up rentals and loans hold over the same dates.
Reserving checks every line on the agreement, including against each other — two lines cannot each be promised the last unit — and names every line that came up short rather than stopping at the first. Pick Up checks each line again as it checks that line's units out.
A rental that is still out after its expected return date goes on holding what has not come back until it is returned, so a later booking for that equipment is refused in the meantime. A line naming a specific unit also counts against that unit's product, so a unit cannot be booked by name for dates on which bookings for the product need every unit that is still free.
A reservation also holds the stock against the counter. A plain checkout of a unit that would leave a booking short is refused, naming the agreement and its dates. Every checkout has to state a due date, and that date is what decides it: one due back before the booking starts doesn't clash, so it goes ahead.
Returning equipment early releases it straight away. An agreement holds only what it still has out, so a machine back three days ahead of schedule can go out again immediately — you do not have to close the agreement first.
Deposits, late fees, and damage #
Record a security deposit on the agreement, apply a late fee percentage on overdue days, and add damage charges on return. Days a unit is kept past its expected return are billed at its normal rate, and the late fee is added on top.
On close, the invoice carries the damage charge, and the replacement charge of any unit marked lost, in full and taxed at the rental's tax rate. The security deposit then goes against those charges and their tax, never against the rental itself, and whatever is left of it is refunded as a credit memo. On a $200.00 deposit with a $75.00 damage charge at 8% tax, $81.00 of the deposit goes against the damage and $119.00 is refunded. If the charges come to more than the deposit, all of it goes against them and the rest is left to pay. Rental agreements explains how the deposit shows on the invoice.
Billing #
On close, Knowledge ERP generates a customer invoice priced by the actual duration. For long rentals you can enable cycle billing (weekly or monthly), which also invoices each cycle that bills something, as well as at close. A rental still out after its expected return keeps being billed on its cycle invoices, at the normal rate, until the equipment comes back or you close the agreement. Every rental invoice, at close or for a cycle, starts as a Draft. The one at close waits for you to review and send it as you would any other. A cycle's invoice is emailed to the customer as soon as it is billed when the agreement's Email each period's invoice to the customer setting is on and the customer has an email address (see Rental Agreements), and otherwise waits the same way.
Calendar and self-service #
A reservation calendar shows what's booked when, and customers can view their agreements and invoices through the customer portal, where each agreement opens to a detail page with the return date and line items.
Due-date reminders & extensions #
Set a reminder lead time under Location → Rentals — a card the location form shows once your plan includes Rentals — and customers are emailed once before a rental is due back — with the equipment list and a link into the portal. From the portal a customer can request an extension of 1 or 2 weeks, or 1 month, and sees a live estimated additional cost for the choice. Extending only moves the return date — the extra time is billed through the normal cycle/return billing, so no separate invoice is created. Requests wait for staff approval (an Extension Requests queue with a pending badge) unless the location turns on auto-approve.
Doing it from the API #
# List rental agreements
curl "https://your-domain.com/api/v1/rental-agreements" \
-H "Authorization: Bearer $TOKEN"