Skip to content
Knowledge ERP Docs
API Reference ↗
Rentals

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 winning at billing time.

A rental rate is the price you charge to rent a Product for one billing period. "Scissor Lift, 26 ft — $250/day" is a rental rate; the Product it points at is the equipment, and the rate is simply what it costs to keep that equipment out for a day, a week, or a month. Rates are the pricing layer that feeds rental agreements — when a rental is billed, the system looks up the matching rate rather than asking you to retype a price every time.

Rate vs. agreement, in one line: a rate is a reusable price-list entry for a Product; an agreement is one customer renting specific equipment for a date range. The agreement resolves a rate to know what to bill.

What a rental rate holds #

Each rate ties together a Product, a period, and a price, plus optional scoping:

  • Product — the piece of equipment being priced. Required. Only Returnable equipment is rentable, so this points at a returnable Product.
  • PeriodDaily, Weekly, or Monthly (see below). Required.
  • Rate — the price for one period, entered in dollars in the UI and stored in cents under the hood. Required.
  • Minimum periods — the fewest periods a rental of this kind can be billed for (defaults to 1), so a one-day pickup of weekly-rated gear can still carry a sensible floor.
  • Customer override — leave blank for the standard rate, or set it to give a specific customer negotiated pricing.
  • Location override — scope the rate to a single inventory location, useful when the same Product rents for different prices by branch.
  • Active — only active rates are eligible to be resolved at billing time; switch one off to retire it without deleting it.

Per-period pricing #

Every rate is priced against exactly one period, and the period also decides how a calendar span converts into billable units:

  • Daily — one period spans 1 day.
  • Weekly — one period spans 7 days.
  • Monthly — one period spans 30 days.

You can have several rates for the same Product at different periods — a daily, a weekly, and a monthly price — and the agreement picks the one matching the rental's chosen period. The period a rate is created with defaults to Daily.

Set complementary daily/weekly/monthly rates on a Product so longer rentals get a better effective price — e.g. $50/day, $250/week, $800/month — and let the agreement choose the period that fits the booking.

Prices are stored in cents #

Like every money field in Knowledge ERP, the rate is an integer number of cents in the database and over the API. 5000 means $50.00. The rate form shows and accepts dollars (with a $ prefix) and converts to cents on save, so you never type cents by hand in the UI — but if you script rates through the API, you send and receive whole cents.

How rates attach to Products #

A rate always belongs to one Product through its product_id. Because a Product can carry many rates — different periods, plus customer- and location-specific overrides — pricing for a piece of equipment is expressed as a small set of rate rows rather than a single number on the Product. Manage them under Rentals → Rental Rates, where the list shows the Product, period, price, any customer or location override, and whether the rate is active. The list sorts newest-first and you edit a rate in place.

How a rate is chosen (resolution) #

When a rental is priced, the system resolves the best matching active rate for the Product and period. More specific rates win:

  1. A rate matching both the renting customer and the rental's location.
  2. A rate matching the customer.
  3. A rate matching the location.
  4. The generic rate (no customer, no location) as the fallback.

Only rates flagged active are considered. This is what lets you publish a standard price for everyone, then quietly override it for a key account or a single branch without touching the default. See equipment rentals for how resolved rates flow into a rental's charges.

Editing and retiring rates #

Rates are versioned through the change tracker, so every edit to a price, period, or override is captured in the rate's change history. To stop using a rate, switch active off (it stays on the record and in history) or delete it — deleting soft-deletes the rate, and any rental agreements that already referenced it are unaffected.

Doing it from the API #

# List rental rates (filter by Product, period, or active status)
curl "https://your-domain.com/api/v1/rental-rates?period=day&active=1" \
  -H "Authorization: Bearer $TOKEN"

# Create a rental rate at $50.00/day
curl -X POST "https://your-domain.com/api/v1/rental-rates" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"product_id": "...", "period": "day", "rate": 5000, "min_periods": 1}'

Over the API the rate is an integer in cents (5000 = $50.00), the period is one of day, week, or month, and relationships use _id field names — product_id, customer_id, location_id.