Mabele Rental Manager: Complete User Manual
A living document. Last updated 5 October 2026 · app version 1.3 (build 3.2) · iPhone & iPad (iOS 17+), plus the Mac (Catalyst) build. Owner © 2026 Mabele Innovations. Contact: support@mabeleinnovations.com.
This manual documents every tab and every feature of Mabele Rental Manager. New to the app? Start with the Quick Start. For how it's built, see the Technical Architecture; for what was built and why, the Feature Log & Rationale.
What's new in version 1.3 (builds 1.21 to 3.2).
- Customers sign by link (§4): send an unsigned contract as a private signing link by WhatsApp, text message or email; the customer reads and signs on their own phone and the signature appears on the contract by itself. The link works once and expires after 7 days. Turn on Customer will sign by link on the rental form to start a rental this way. Contracts still to be signed wait under Unfinished on Home, and can be signed from the contract, the Contracts list, the Unfinished list or the rental. Voided contracts show every amount struck through.
- Customers pay by link (§5.3): your own payment page (PayPal.me, Fygaro, your bank) with the amount and contract reference filled in, or PayPal and Stripe connected so the link marks itself paid. Payment received alerts, even with the app closed (PayPal). Payment link is a choice for Rental paid by on the rental form, and one message carries the signing and payment links.
- Deposit hold on PayPal (§5.3): the customer approves a hold of the deposit; you release it at return or take what's needed for damage.
- Two renters: the second renter signs with their own link, the rental shows 1 of 2 signed, and Send to both sends both messages in one go (§4).
- Extensions paid by link: one tap sends a payment link for just the extra (§5.3). Rental paid by shows the real mix when payments come in different ways.
- No need to design a new rental contract: send us the contract you already use and we set it up for you, free, with notifications as it progresses (§5.3, Have us set up your own contract).
- Change signed contracts only by Void & edit (owner option, with a Team permission), and returned rentals keep editable charges (§5.3).
- Licence scanning: amber boxes to check, barcodes, Ontario and Barbados licences, passports and ID cards (both sides), other alphabets saved in English letters, an optional multi-frame licence camera (§7).
- Card on file, separate from the security deposit (§5.2). 360° camera in the car features (§11).
- Report a problem with a diagnostic report (§17.8): one switch attaches what the app did and any errors, so a problem can be traced. You can read it first; no customer details are in it.
Security hardening (audit #3). A third security review shipped: reminder notifications no longer show customer names or money on the lock screen; backup restore is hardened against tampered files and validates before replacing your data; and the Firebase security rules were tightened (suspended staff and read-only viewers can no longer touch your synced photos/contracts; poisoned timestamps are rejected). After updating, open Cloud sync and re‑publish BOTH the Firestore and Storage rules once for the rule changes to take effect (see §17.5/§17.6).
What’s new since 5 July 2026 (this update). A Customer care tab gathers everything customer‑facing: who needs attention today (with one‑tap Call/Draft), a care card for any customer (history, upcoming booking incl. flight, language, preferences, “Draft any message…”), your waitlist and do‑not‑rent lists, and the automatic offers. Booking confirmations now check the licence on file against the booking window and add a kind note when it will be expired. Getting easier to learn: the startup tour shows just the essentials (the full tour stays in Settings), every screen has a ? help button, this manual is readable & searchable in‑app (Settings → Help & learning), the Home checklist gained an “add your first customer” step, sample data can be re‑loaded onto an empty device (§3), and a few screens show one‑time dismissible tips.
What's new since 4 July 2026. The payment question now happens at return too ("Was the balance collected?", full / partly / not yet, §5.3). Vehicles and customers are searchable wherever you pick them (plate/make/model/location; name, plus phone/licence for permitted viewers), and a filtered car shows its bookings and current rental right in the list (§5). Evidence photos grew up: the app has its own multi‑shot camera (several angles in one visit, flip, live count), you can mark damage directly on a photo before saving, photos print at the end of every contract (compressed grid, toggleable in Design), and a clean return offers to delete the rental's photos with a double confirmation (§5.2 to 5.3). Booking conflicts behave exactly like rental conflicts: the popup fires as soon as the dates clash, with every fix including bridge‑then‑swap; a booking's planned swap carries onto the rental at collection, and the timeline bar splits at the swap date (solid on the stand‑in, dashed "reserved" on the intended car, §5.4/§6). Imports show a progress bar and are much faster (one batched save), the CSV parser accepts Excel‑style files (a long‑standing bug), and the vehicle template carries weekly/monthly rates (§17.7). The Home counts always add up (cards count cars; statuses self‑check at launch), the widget matches Home and never carries names or amounts, and "Record a payment" grays out once a rental is settled.
Contents#
- Concepts & how the app fits together
- Getting around (navigation, tabs, layout)
- The guided tour & sample data
- Home (Dashboard)
- Rentals & Bookings
- Calendar (Timeline / Month / Week)
- Scanning (plates, licences, receipts, cards)
- Conflict detection & resolution
- Drafted customer messages
- Expenses
- Vehicles
- Customers
- Supplies
- Activity (Log)
- Income & Expenses (Reports)
- Financials (lender pack)
- Settings
- Company & contract
- Contract design & the contract PDF
- General app settings
- AI features
- Security & Privacy
- Cloud sync, staff accounts & multi‑device
- Import customers & vehicles
- About, privacy & terms
- Notifications & reminders
1. Concepts & how the app fits together#
Mabele Rental Manager models a small vehicle‑rental operation around a few core records:
- Vehicle: a car in your fleet. Has a plate, make/model, daily/weekly/monthly rates, a status (Available, Rented, In Repair, Out of Service), specs (class, quality tier, seats, transmission, drivetrain, fuel, features) and a unique sticker code (e.g.
RM‑0001) you can print as a QR/barcode. - Customer: a renter. Name, phone, email, driving‑licence details, local and foreign addresses.
- Booking: a future reservation of a vehicle for a customer (Confirmed or Tentative). Becomes a rental at handover.
- Rental: an active or historic hire. Carries the dates, itemised charges, deposit, condition record, signatures and the generated contract PDF.
- Expense: a running cost (fuel, insurance, maintenance, repairs, licensing, cleaning, other), optionally tied to a vehicle.
- Supply item: a consumable you keep in stock (oil, wipers, keys…), with restock/usage tracking.
- Log entry: a manual note in the activity timeline.
By default everything is stored locally on the device; a business with more than one device can turn on cloud sync with staff accounts (§17.6). Either way, sensitive card‑deposit details and your AI API key live only in the device Keychain, never in the main data file and never synced.
2. Getting around#
The app adapts to the device:
- iPhone: a bottom tab bar. The first five visible tabs show; Settings is reached via the gear.
- iPad: a left sidebar grouped into Daily, Manage, Reports & Accounting, with Settings at the bottom. Tapping Home acts as a “home button”, it returns the current area to its root. You can drag the Text size and Sidebar width sliders at the bottom of the sidebar.
Tabs (in order): Home · Rentals & Bookings · Calendar · Expenses · Vehicles · Customers · Supplies · Activity · Income & Expenses · Financials · Settings.
You can show/hide tabs (except Home and Settings) and show/hide Dashboard sections under Settings → General app settings.
Throughout the app:
- + (top‑right) adds a new record on most screens (Home has none, its big action keys do that job).
- On iPhone, every tab carries a 🏠 button (top‑left), one tap back to Home from anywhere, even when the keyboard hides the tab bar. Typing anywhere? The keyboard always has a Done key or dismisses with a drag.
- Search bars filter lists (customers, vehicles, contracts).
- Swipe a list row for quick actions (delete, restock, share…).
- Long‑press a vehicle row/card for its Book/Rent/Return actions.
- A green toast confirms actions (“Rental started”, “Expense saved”).
3. The guided tour, per‑screen help & sample data#
- The startup tour is short on purpose, just the essentials (Home, renting, the calendar, vehicles, customers), so a newcomer isn't buried in twenty pages. Skip tour is always available in the top corner, and the last page and Settings → General app settings → Help & learning both have a “Show this guide when I open the app” toggle.
- Replay the full tour (every screen, ~20 pages) lives in Settings → Help & learning.
- Every main screen has a ? button in its top bar: it shows just that screen's tour pages, what the screen is for and how to use it, right where the question arises, plus a link to the full manual.
- This complete user manual is readable inside the app: Settings → Help & learning → User manual, searchable across every section.
- A few screens show a one‑time tip (a small 💡 line, e.g. “tap any calendar bar for its details”); dismiss it with its ✕ and it never returns.
- The app ships with sample data so you can explore. While it's present, Home shows a “You're exploring sample data” banner with “Clear sample data & start fresh.” Clearing wipes all demo records but keeps your company branding/settings. On an empty device you can load it again any time, Settings → Help & learning → Load sample data to explore (samples can never mix with real records: the button only exists while the device holds none).
- Until the first records exist, Home shows a Getting started checklist (company details → first vehicle → first customer → first rental) that ticks itself off as the real data appears, each row jumps straight to the right screen.
4. Home (Dashboard)#
Home is your daily command centre. Sections (each can be hidden in Settings):
Status counts#
Four cards at a glance: Unfinished (rentals saved half-done as drafts, plus contracts still waiting for the customer's signature: tap to resume or sign), Out (vehicles currently rented), Available, and Bookings (upcoming). A fifth red card, To collect: appears only while customers still owe money on rental charges; tap it for the list of who owes what (§5.3). The counts always add up: every card counts cars (a two‑car rental takes two cars out), so Out + Available + In repair + Out of service always equals your whole fleet, and the app self‑checks at every launch: a car whose status got stuck (e.g. "Rented" with no active rental) is corrected automatically and the fix is noted in the Activity feed.
Today's plan (the briefing)#
A single, urgency‑ranked list of everything needing attention today, with a red count badge and a Show/Hide handle to collapse it. Tap any row to jump straight to it. It surfaces:
- Overdue rentals (past their return date), red.
- Due back today: orange.
- Pick‑ups today (confirmed bookings starting today), blue.
- Vehicle swaps due (a planned “bridge then swap” whose date has arrived), green.
- Unsigned contracts, purple: any contract still waiting for the customer's signature, whether the car is out or back.
- Bookings to confirm (tentative, future‑dated).
- Licence expiries: expired (red) or expiring within 30 days (orange) for current/near customers.
- Low stock items.
- Waitlist match (green), a car has freed up (a cancellation, a shortened rental) for someone on the waitlist: call them and book it in a tap (§5.4).
- Money to collect (red), a car is back (or overdue) but a balance is still owing: who, how much, and what they've paid so far (§5.3).
Rows about a person now carry call and message buttons: one tap rings them, or opens the right pre‑drafted message (overdue chase, return reminder, pick‑up reminder, balance due, "your car is available", §9). Staff you mask customer details from don't get these buttons.
Quick actions#
- ”Rent a vehicle”: goes straight to a new rental agreement.
- ”Scan a plate to return, rent or book”: opens the scanner/lookup to act on any car instantly by its plate or sticker.
- ”Open scheduling calendar”: jumps to the Calendar timeline.
- ”Quote a price”: the phone‑call answer machine: pick a car and dates, and the app prices the hire exactly as the rental form would, the daily rate with your seasonal/weekend rules, the weekly and monthly rate applied automatically on longer hires (a 7‑day quote bills a week, 30 days a month), tax, and the second currency, confirms the car is genuinely free for the period, and adds the foreign‑driver licence fee when needed, you can set the per‑licence fee right on the quote (it prefills from Settings › Company). Hand it over as a ready‑to‑send message (copy or share into WhatsApp/Messages) or a branded PDF carrying your logo, company details and footer. Save the quote to the Quotes tab (Rentals & Bookings › Quotes) to follow up later; when they say yes, an approved quote becomes a booking or a walk‑in rental in one tap, everything pre‑filled.
- ”Find an available car”: the availability search: pick dates and needs (seats, transmission, class, branch) and see every car genuinely free for the whole period, cleaning buffers, swaps and shop time respected. Tap a car to book it; if nothing is free, add the customer to the waitlist (§5.4).
- The magnifier at the top of Home searches everything at once, customers, plates, rentals, bookings, expenses, servicing and inventory (try the keywords “damage” or “deposit”).
- Outside the app: long‑press the app icon for New rental / Scan a plate / Find available; on iPad use ⌘N, ⇧⌘S, ⇧⌘F. You can also ask Siri (“New rental”, “Scan a plate”, “Find an available car”), run them from the Shortcuts app, and your customers and cars appear in the iPhone/iPad system search (Spotlight): tapping a result opens the app on that record.
- The “Today at the lot” widget: a Home‑Screen widget (small or medium) and a Lock‑Screen accessory showing cars out / free / booked and the top of Today's plan, updated automatically as your data changes. It deliberately shows no money figures (a lock screen is public). Add it: long‑press the Home Screen → Edit → Add Widget → Mabele Rental Manager (open the app once first so it has data to show).
Unfinished: drafts and contracts awaiting signature#
On the New Rental screen, tap Save to store the rental as a draft to finish later; Cancel discards it (you changed your mind). As a safety net, if the app is closed mid‑rental without saving, it's auto‑saved. Drafts live under the Unfinished card; tap one to resume exactly where you left off: including any handover photos you'd already taken (they're stored with the draft and restored on resume), then sign and start. Card details and signatures aren't stored in a draft (you capture those at finalization; the card stays encrypted on‑device). If a draft sits unfinished past your chosen number of days (Settings → General app settings → Scheduling → Unfinished‑rental reminder, default 2), Home reminds you in Today's plan. Discard a draft by swiping it in the Unfinished list.
Contracts awaiting signature. A contract without the customer's signature is unfinished too, however it was issued (for example, a corrected contract completed before the customer could sign). It is listed under Unfinished in its own Awaiting signature section, carries an orange Awaiting signature badge in the Contracts library and a signature mark in the Rentals list, and appears in Today's plan. Sign it from whichever place you're looking at: Sign in the Unfinished list, Sign the contract now at the top of the rental, the orange Sign the contract now bar under the contract itself, or a swipe to the right in the Contracts library. The same signing pads as a new rental open; once the customer signs, the contract is redrawn with the signature and leaves the Unfinished list. A voided or deleted contract never waits for a signature.
Remote signing. When the customer isn't with you, tap Send a signing link (on the rental, or under the contract itself). The app creates a private link that works once and expires after 7 days; send it by WhatsApp, text message or any app. The customer opens it on their own phone, reads the contract, types their name and signs the agreement with a finger. The signature appears on the contract automatically (the app checks every minute while it's open, or tap Check for the signature now), and the contract leaves Unfinished. The vehicle condition page is still signed in person. If the contract changes before the customer signs, or you void it, the link is cancelled and you can send a new one; a signature on an older version is never applied. A second renter signs too: when the rental has a second renter, Create the signing links makes one link for each person, and each gets their own message. Their signature goes on the agreement's second signature line. The rental and Unfinished show 1 of 2 signed until both have signed; if the main renter has signed and the second hasn't, the rental shows Waiting for the second renter with a button to send them a new link. With both links made, Send to both opens the first renter's message (signing, plus payment and deposit hold when used: the first renter is the one who pays), and when you've sent it and come back, the second renter's message (signing only), each by WhatsApp (a text message if WhatsApp isn't installed), else email, else Share, whichever is on file. You tap Send in each; Apple doesn't let apps send messages silently. Switch it off in Settings → Company & Contract → Remote signing → Two renters. Sign and pay in one message. When the rental is paid by link, the signing screen shows One message, two links (with a deposit hold, three): the link to sign first, then the link to pay, then the hold, and the whole message exactly as the customer gets it. Sending later from Unfinished? The screen offers Also ask for payment (and Also ask for the deposit hold) so it still goes in one message. Send by WhatsApp, Send by text message and Share send the whole message; Copy the message copies all of it, and Copy only the signing link copies just the link. Links go through your company's own Firebase project when you sync with Firebase (after re-publishing your Firebase rules once), and through the Mabele signing service otherwise; it's free while in testing. See Settings → Company & Contract → Remote signing.
A new rental signed by link. When the customer can't sign at the counter, turn on Customer will sign by link in the rental form's Contract section. Complete then starts the rental with the contract unsigned (the car goes out; condition, photos, fuel and odometer are recorded as usual), asks the usual payment question, and opens Send for signing so you can send the link straight away. With Rental paid by: Payment link as well, the button at the bottom of the form reads Complete and send the links: the payment link is made, the payment question is skipped (nothing has been paid yet), and the send screen opens with both links in one message. The contract stays under Unfinished until the customer signs. The choice is made each time; a saved draft doesn't remember it.
Browse sections#
Every list on Home has a count badge and a Show/Hide handle, tap the header to collapse one you don't need, and it stays collapsed next time you open the app.
- Out now: vehicles on hire (those not already shown above).
- Upcoming bookings: future reservations.
- Available: free vehicles (each row has its Rent/Book actions via long‑press).
Worth a look (collapsible, at the bottom)#
Algorithmic fleet insights, with a count badge and a Show/Hide handle. These can include:
- Service due: a car that's passed your service interval since its last maintenance entry, by months, or by distance driven since the last service. The distance interval can be set per vehicle (Vehicles → Edit → Service interval, e.g. an oil change every 5,000 km) and falls back to the company‑wide setting.
- Service coming up: a car within 10% (or 500 km/mi) of its service‑distance interval, so you can plan the shop visit around its bookings. The vehicle's page shows "Since last service" too.
- Gaps to fill: a genuine idle gap between two commitments on the same vehicle.
- Money pit: a vehicle whose upkeep is well above the fleet median.
- In the red: a vehicle whose net (income − costs) is negative.
The same insight engine that drives Today's plan and Worth a look is read‑only, it never changes your data, just points things out.
5. Rentals & Bookings#
This tab has a segmented control at the top: Rentals · Bookings · Contracts.
5.1 Rentals#
Fleet‑scale picking: wherever you choose a vehicle (new rental, booking, quote) the row opens a searchable list with filter options: type part of the plate/make/model/location, or filter by class, gearbox, location and seats ("an automatic 7‑seater at the Airport" is three taps). Cars with commitments show them inline ("Out until … · renter", "Booked 12 to 15 Jul · name"), so a car that looks free is never picked blind. Customers are searchable the same way (by name, phone/licence too for viewers allowed to see them) with All / Recent renters scopes (recent = repeat customers, most recent first) and a switch to hide ⛔️ do‑not‑rent customers.
A list of rentals filtered by Active / Completed / Void, and by period (the same calendar menu as Contracts: a rental is listed when any of its days, out to due back, or out to returned for a completed one, fall in the period). Each row shows the vehicle, customer, dates, days, total (struck through when void), a due pill on an active rental, and a signature mark while the contract awaits the customer's signature. Overdue active rentals are marked red. Tap a row for the rental detail; tap + to start a new rental.
5.2 Starting a rental (the full flow)#
Open from Rentals → +, from a vehicle's Start rental action, by collecting a booking, or by scanning a plate. The form is a stepped wizard: progress chips at the top (Car → Customer → Dates → Money → Sign) show where you are, and later sections appear as the earlier steps are completed, so nobody gets lost mid‑agreement:
- Vehicle: pick an available car. You can add up to two additional vehicles on the same contract.
- Renter: pick an existing customer or add a new one inline. As soon as a customer is chosen (with a vehicle selected), on every path into a rental: New, scanning a plate, a vehicle's Start rental action, or Collect now on a booking, a popup asks "Charge the standard rate?" Tap Charge the standard rate to keep the listed rate, or Charge a different rate… to enter, in the same popup, a custom amount and choose whether it's per day, per week or per month, then Apply this rate. Only the vehicle rate changes, licence and all other fees stay standard. The chosen rate shows in the Vehicle rate row at the top of Charges, where Change rate re‑opens the popup any time.
- Second lessee / driver (optional): its own section right under the renter: add a second person driving on the same agreement. They carry the same full details as the first lessee: name, licence number + issued/expires, local and foreign address and phone, everything except payment (pick an existing customer or Add second lessee to enter a new one). All of it prints on the contract's second‑lessee block.
- Additional vehicles (optional): a rental can cover more than one car at once; add up to two extra vehicles and they all appear on the contract (up to 3 cars total).
- More details (optional): pick‑up/drop‑off location & method.
- Period: pick‑up and return date/time. A length‑of‑rental tip appears when a weekly rate would be cheaper, or a full week is only marginally more than the chosen days.
- Charges: a Vehicle rate row at the top shows the rate in force (standard, or a custom per‑day/week/month rate) with a Change rate button that re‑opens the rate popup (see step 2). The hire auto‑splits into Months / Weeks / Days lines at that rate (a 7th extra day rolls into a week; a month = 30 days; weekly/monthly fall back to daily ×7 / ×30 if not set). A custom per‑week/per‑month rate is pro‑rated across the lines (leftover days at the weekly rate ÷ 7, etc.), so e.g. a 35‑day hire on a weekly rate comes to exactly 5 weeks. Add a number of temporary driving licences for foreign drivers, a gasoline line, a collision damage waiver (CDW), and a VAT rate. Edit, add or delete any line. The running total (and a converted second‑currency total, if enabled) updates live.
- Handover: fuel out, odometer out, how the rental is paid (Card, Cash, Cheque, Bank transfer, To bill), and notes.
- Security deposit (always shown), the refundable down‑payment, taken in any mix of cash, cheque and card together: enter an amount per method, Cash part, Cheque part (with its cheque number), Card part: and they sum live to the total. The card fields are always available (any combination can also hold a card against damage): Scan card with camera (reads the number and expiry, an expired card triggers a red warning) or type it; the full card is stored encrypted in the device Keychain so it can be charged for accident damage, and is wiped automatically when the vehicle is returned (configurable). The contract shows only the last 4 digits and the card brand, and its tokens include the cash/cheque/card parts separately (a "deposit method" tick‑box ticks for every method in the mix).
- Vehicle condition: mark blemishes on the vehicle diagram with finger/Apple Pencil (on the app diagram, the Reggie diagram, or your imported contract's own diagram region). The marked image prints on the examination page. Attach photos at handover with the app's own multi‑shot camera (shutter with a live count, photograph every angle in one visit; flip button; if a camera can't start, the screen says why with a Try‑again instead of going black) or from the photo library. Tap any captured photo to mark the damage on it with the pen before saving, the marked image replaces that copy everywhere, so keep marks factual. Photos are timestamped and stored encrypted on this device; they also print at the end of the contract as a compressed, timestamped grid (toggle: Design → "Handover photos in the contract"), so the customer's copy carries the car's photographic state at key‑handover.
- Condition checklist: tick what's present (spare tyre, jack, etc.); ticked items print on the exam page.
- Contract: Preview full contract to review the PDF, then Sign & generate → the Signatures hub:
- Contract agreement, Lessee 1 (required to start).
- Contract agreement, Lessee 2: a second signature pad, shown whenever a second lessee is on the rental. Both signatures print on the contract (on every layout, and on an imported/Reggie template's second‑lessee signature field).
- Vehicle condition, Customer and , Agent (optional acknowledgements of the recorded condition).
- Tap Start. If there's a scheduling conflict, a colourful popup appears first with recommended fixes (see §8). On success: the signed contract PDF is saved, the vehicle(s) become Rented, any booking is marked Converted, the card deposit is saved to the Keychain, and, if you enabled “Email a copy when signed”, the contract email opens pre‑filled.
The footer always tells you what's still missing before you can start (vehicle, customer, signature).
Card on file. The rental form has its own Card on file section, separate from the security deposit. Record the customer's card there whatever they pay with, so it's on record for the rental charges, extensions and any damage. Switch on Also hold this card as the security deposit when the card is the security (it's on automatically when you enter a card part in the deposit). The card is held encrypted on this device only, never in backups or the cloud, and the contract shows only its last 4 digits. The same rule applies to every card: at return you're asked how the vehicle is; after an issue the card is kept until you close it off, otherwise it's deleted.
5.3 Managing an active rental#
Open a rental for its detail screen:
- Hero with customer, vehicle and status (red if overdue).
- Planned swap card (if set): “Swap onto [plate] now” or “Cancel the planned swap.”
- Vehicle / renter / period / charges breakdown, plus the security deposit and card on file.
- Payments: every payment received toward the charges (the refundable deposit is separate), the balance due (or a green Paid in full: it also badges the Grand total the moment logged payments cover it, whichever path logged the final payment), the "Expected by" date when one is set (red once passed), and Record a payment. The payment question: the moment a rental starts, a pop‑up asks "Has the full payment been received?": Yes logs it; Not fully opens a small sheet for what was received now (0 is fine) and, if you know it, when to expect the balance. The remainder becomes the tracked balance behind Home's To collect card. Reminders respect the agreed date: nothing nags before it; the briefing row appears the day it arrives (or, with no date set, once the car is back with money still owing), and the "Balance to collect" notification (§17.9) fires that morning. You can set or change the expected date any time from Record a payment. Removing a mis‑entered payment is admin‑gated, and every recorded payment lands in the Activity feed. (Rentals from before this feature are treated as settled until you record a payment on them.) Extending a rental grows the total, so an already‑paid rental correctly shows the extension as owed.
- Pay by link. Under Payments, Request payment by link sends the customer your own payment page (a PayPal.me link, a Fygaro button, your bank's payment page, a WiPay page: any provider in any country) with the amount and the contract reference (for example C1023) filled in. Set your pages up once in Settings → Company & Contract → Payment links. The address can contain fill‑ins the app completes: {amount}, {amount_cents}, {currency}, {reference}, {customer}; a page without them is sent as it is and the customer types the amount. Check the amount, tap Create payment link, then Send by WhatsApp, Send by text message, Share or email or Copy link: the message opens ready, you just tap Send. The money goes straight to your own account; the customer's card goes only to the payment page, never into the app. These pages can't report back, so the link waits on the rental (orange, "waiting") until you swipe it right and tap Mark paid (or long‑press it): that records an ordinary payment such as "PayPal (link)", so the balance, receipt, reminders and reports all follow. Swipe left to Cancel link. If you record the same amount by hand while a link is waiting, Record a payment offers Mark the link paid instead, so it is never counted twice; removing a link's payment puts the link back to waiting. Asking again for the same amount reuses the link that's already waiting rather than making a second one, and once a rental is paid in full any link still waiting is closed (here and at the payment company), so the customer can't pay twice. Send screens: Copy the message copies the whole message, Copy only the link just the link. Voiding a contract cancels its waiting links; Void & edit carries them onto the corrected contract. Staff can send links when the owner allows Send a payment link in Team (and they can see amounts); staff devices receive your payment pages at their next sync. - Connected payment companies (Stripe, PayPal). In Settings → Company & Contract → Payment links, connect Stripe or PayPal with your own key: Stripe needs a restricted key (Dashboard → Developers → API keys → Create restricted key, with Write for Products, Prices and Payment Links and Read for Checkout Sessions); PayPal needs a Client ID and Secret from an app at developer.paypal.com (Sandbox to test, Live for real money; a Business account that can receive payments). Tap Save and test the connection; a key that fails isn't kept. For PayPal, the app's Invoicing feature must be ticked on the developer site (Apps & Credentials → your app → Features); if it isn't, the test says so plainly. A change you just made at PayPal can take a few minutes to apply; the app fetches a fresh permission and retries once by itself. Once connected, the company appears as a payment page like any other, but it makes a page for the exact amount (Stripe: a payment link that accepts one payment; PayPal: an invoice's pay page, which PayPal doesn't email to anyone) and the app asks it every minute while open whether it has been paid: when it has, the rental is marked paid by itself, with the amount the company reports, and a Payment received message and notification (banner and sound) say who paid how much. With PayPal, the alert comes even with the app closed: on connecting, the app registers an "invoice paid" webhook with your PayPal app, PayPal tells Mabele's server the moment an invoice is paid, and your device is woken (only devices where PayPal is connected). Disconnecting removes it. PayPal invoices show your business name as who they're from. Cancelling a link, or voiding its contract, switches it off at the company too. The key stays on that device only (never synced or backed up), so enter it on each device that should create these links; other devices see the payment through sync. The company receives only the amount, currency, contract reference and your business name, never the customer's details. Stripe doesn't take businesses in most of the Caribbean; PayPal does in many countries. Refunds through the app and more companies (Revolut, Square, Adyen, Mollie, Razorpay, Mercado Pago, Paystack, Flutterwave) are planned.
- Payment link on the rental form. Once a payment page is set up, Rental paid by offers Payment link (with Pay with when you have more than one page); the contract prints "Payment link (PayPal)". With it chosen, the app doesn't ask "Has the full payment been received?" (nothing has been yet): the link for the whole amount is created when the rental starts, the balance shows under To collect, and the send screen opens next. If you also chose Customer will sign by link, one message carries both: the signing link first, then the payment link. With Cash or Card, "Not fully" offers Send the rest by payment link for whatever is still owed. With a second currency, a payment-link rental converts at the card rate unless you switch off Use the card rate for payment links in Company & Contract → Currency.
- Paid by more than one method. When payments come in different ways (for example cash at the counter and the rest by PayPal link), Rental paid by on the rental and on the contract shows the actual mix, such as "Cash $200.00 + PayPal (link) $839.60", and every method used is ticked on contracts with tick boxes. With one method, it shows the method chosen on the form, as before. Tick boxes and payment links: a payment by link (PayPal, Stripe or your own page) ticks the box for that company when your contract has one; otherwise it ticks Cash, since the money has been received. The written payment method still names the company, for example "Payment link (PayPal)".
- Deposit hold on PayPal. With PayPal connected on the device, the rental's Deposit hold section offers Ask for a deposit hold on PayPal (and the signing screen offers Also ask for the deposit hold, so one message carries signing, payment and the hold). The customer approves a hold of the amount stated in the message: the money stays in their account, set aside, not paid. When they approve, the device gets an alert (even with the app closed) and the hold is placed when you open the app; the rental shows how much is held and until when. At return, open Release the hold or take for damage: Release the whole hold, or enter an amount and Take for damage (PayPal releases the rest). PayPal keeps a hold up to 29 days but guarantees the money only for the first 3 days; on longer rentals a card on file or cash deposit is safer. Voiding the contract releases the hold; Void & edit carries it onto the corrected contract. Your PayPal key never leaves the device.
- Export claim pack: ONE PDF for an insurer or a deposit dispute: a branded summary page (rental facts, your incident note, the deposit & card‑hold record, repair costs in the claim window), the contract (signed = exactly as signed), every timestamped before/after condition photo, and the receipt copies you tick. Export is admin‑gated like other exports.
- Card security deposit: Reveal full details (requires re‑authorization with the strongest security you've configured, your PIN and Face ID/Touch ID together when both are set), Shred card details now, with a note on the auto‑wipe policy.
- Condition: fuel/odometer out and in, and whether the contract is signed.
- Contract: View, Share (PDF), Email, or Delete (admin‑gated; the contract regenerates to match current branding when viewed).
- Message the customer: opens the message drafter (§9).
- Actions (kept at the top, right below the status): Extend, Shorten, Switch vehicle, Edit charges / figures (admin‑gated), Return vehicle, and Book for a later date: placed first so they're reachable without scrolling on an active rental.
- Awaiting the customer's signature (only on a contract not yet signed): Sign the contract now sits at the very top, above the actions.
Signed contracts: Void, and Void & edit. A signed contract is never changed in place. Every contract carries a number (No. 1001, 1002 and so on; the starting number is set in Contract design), and the rental's contract section offers two ways out, both admin‑gated and both asking for a reason that is printed on the voided contract:
- Void contract (the deal is off, for example the customer changed their mind). The rental is cancelled everywhere: it no longer counts as a rental, in reports or as income; the car becomes available again; an unrefunded deposit is marked returned; card details are deleted. The contract stays on file under Void, stamped VOID with every figure struck through.
- Void & edit (the contract was wrong). A copy opens with every detail filled in. Correct it and tap Complete: the original is voided and kept on file, and the copy is issued as a new contract with the next number, printed "replaces No. …". Payments, the deposit, card details and the handover photos move to the new contract. The customer signs it now, or later; until then it waits under Unfinished on Home. Close the copy without completing it and nothing changes.
A voided contract can't be deleted, and it never waits for a signature.
Have us set up your own contract (the easy way). No need to design a new rental contract to use Mabele Rental Manager: keep the one you already use. In Settings → Company & Contract → Contract, tap Have us set up your own contract (also offered in Getting started on Home). Tap Send my contract file and pick the file you print your contract from: PDF or Word is best (Pages, RTF and OpenDocument work too, up to 15 MB). Only on paper? Tap Photograph it and scan each page flat in good light. Check your contact details (filled in for you), add a note if anything needs explaining, and tap Send to Mabele. You get a reference such as CS-7KQ4 and a card on Home that follows it: Sent → Setting up → Check → Installed. If we have a question, the card says so; tap it to read and answer. When it's ready, tap Check my contract: you see your own contract filled in with example details. Tap Yes, use it and it's installed straight away (new rentals use it), or Something's wrong to tell us what to change. Until then, keep renting with the ready-made contract. It's free. Send a blank contract; customer details aren't needed. The file is deleted from Mabele's service once the contract is installed or the request is cancelled. You're told as it moves along: when Mabele sends a question or a message, or your contract is ready to check, you get a notification with sound, a badge on the app icon, and a red New label on the Home card (when notifications are allowed for the app and your reminders are on). Tap it to open the request. After Yes, use it, the screen stays on Installed.
Optional: change signed contracts only by Void & edit. In Settings → Company & Contract → Contract, switch on Change signed contracts only by Void & edit. Then, on a signed contract, Edit charges / figures offers Void & edit instead, and Delete contract offers Void contract instead, so every change leaves the original on file. The owner, and staff given Edit or delete a signed contract without voiding in Team, still see Edit charges anyway and Delete anyway (the admin PIN is asked when the lock is on). The option is off by default. It reaches staff devices at their next sync. Once a car has been returned, its charges (fuel, damage) can still be edited as usual; deleting its contract still goes through Void.
Switch vehicle (mid‑rental): if a client changes cars during the same rental period, tap Switch vehicle. Two options:
- Switch to an available car: pick any available car (similar ones listed first). The car the rental was on is kept on the agreement (it isn't lost) and released to Available unless it's immediately taken by another rental; the contract regenerates to list every vehicle used (up to 3 cars, numbered).
- Swap cars with a current rental: pick another active rental to trade cars ("you take my car, I take yours"). Both customers switch, both cars stay rented, and both contracts update to show the switch.
(The planned‑swap and conflict‑resolution flows now retain the car and update the contract the same way.)
Extend a rental: quick buttons (+1d/+3d/+7d, +1/+2 weeks, +1 month), a fine‑tune stepper, or a date/time picker. The same rate popup as a new rental appears so you can charge the extension at the standard rate or a custom per‑day/week/month rate (it's pro‑rated across the added days); a Change rate row lets you re‑open it. It adds an itemised ”Extension” line to the charges and contract, records it in the log, and regenerates the contract PDF. Conflicts raise the resolution popup. When the rental is paid by link, Apply then offers Send a payment link for the extra $X: one tap opens the payment link screen with just the extra amount.
Shorten a rental: brings the return earlier and adds a negative “Early return” credit line, mirroring Extend.
Return a vehicle: record the return odometer and fuel; the rental completes and the vehicle(s) free up (unless still used by another active rental). A Photo evidence section lets you attach photos at return (it also notes how many handover photos are on file to compare against), afterwards the rental's detail screen shows a Photo evidence gallery with the handover and return sets side‑by‑side, so a damage dispute is settled with timestamped pictures instead of memory. Photos never leave the device and are wiped by Clear data.
- Card‑deposit safeguard (return with a question). If the rental holds a card deposit, returning asks you to confirm the vehicle's condition first. If it came back fine, the card details are deleted as usual (per your auto‑delete rule, §17.5c). If there was an issue, the card is not deleted immediately, so you don't lose the details you may need to settle damage, and you get a reminder ("card deposit still held") to settle it and then close it off, which deletes the card. This stops an accident from wiping the very details you need.
- Settling the cash deposit at close‑off. When you tap "Close off & delete card details" after an issue, if the rental also has a cash security deposit still marked for refund, the app asks how it was handled, Refunded to the customer, Kept toward the damage, or Leave for now. Either of the first two clears the "refund deposit" prompt (and stops the refund reminder) and records which, so the rental history stays accurate; "Leave for now" changes nothing. (The cash deposit and the held card are deliberately separate, so the app never silently marks a deposit "refunded" that you actually kept.)
- The photo question at a clean return. When a vehicle returns without an issue and holds condition photos, the app offers to delete them (they've served their purpose), with a second "cannot be undone" confirmation; keeping them is one tap and always safe. A return with an issue never offers deletion, those photos are your evidence. Completed rentals also carry a manual Delete all condition photos button, and every deletion is logged.
- The balance question at return. If the rental still owes money when you complete the return, the app asks "Was the balance collected?": collected in full logs the settling payment on the spot; partly opens Record a payment (pre‑filled); not yet keeps it under To collect with the reminders running. (Order at return: vehicle condition → photos → balance → thank‑you.)
- Send a thank‑you. After a return (and after the balance question, when there is one) you can choose to draft a thank‑you message to the customer (§9).
5.4 Bookings#
Conflicts behave exactly like the rental form: the popup fires the moment the dates (or car) clash, with every fix: delay the start, end earlier, switch vehicle, bridge‑then‑swap (book the stand‑in; the planned move onto the intended car is recorded, blocks the stand‑in only until the swap date, reserves the intended car from it, and carries onto the rental automatically at collection), editable dates + Re‑evaluate inside the popup, "Book anyway" with a reason, and Cancel. The booking's page shows a planned swap with a cancel button.
A list of upcoming (Confirmed/Tentative) bookings, with the same period menu (a booking is listed when any of its days fall in the period), each showing vehicle, customer, dates and a conflict flag if it clashes. Swipe to delete; a toolbar button opens the booking timeline. Tap + for a new booking:
- Pick vehicle, customer, dates, Confirmed/Tentative, deposit, pick‑up/drop‑off and notes.
- Conflicts are flagged and a resolution popup offers fixes (bookings don't carry a planned swap).
Booking detail lets you Message the customer, Collect now → start rental (pre‑fills the rental flow), Extend booking, or Cancel booking. A tentative booking can be confirmed right here: change its status to Confirmed on this screen (the same tentative‑confirm reminder that nudges you also deep‑links here).
The waitlist. When the availability search (§4 Quick actions) comes up empty for a customer's dates, tap Add to waitlist for these dates: pick a customer on file (or type a name and phone), adjust the dates/needs, add a note. The moment a matching car frees up, a cancellation, a shortened rental, Today's plan shows “Waitlist match, call …” with their phone number, and the Waitlist screen (the person‑badge button on the availability search) marks the entry Car free with a one‑tap Book of the freed car for their dates. Swipe an entry to mark it Fulfilled or delete it. The waitlist lives on this device only.
5.5 Contracts library#
Every contract in one place: signed, awaiting signature, and void.
- Period: the calendar menu picks the dates to look at: All dates, Today, This week, This month, Last month, This year, Last year, or Choose dates… for your own From and To. A contract belongs to the day its rental started. The number of contracts in the period shows beside it; the ✕ goes back to all dates.
- Search by customer, plate, make, colour or contract number.
- Sort by Date added, Time added, Customer, Vehicle or Amount.
- Each row shows the customer and contract number, a VOID or Awaiting signature badge when one applies, the vehicle, the total (struck through when void), the signed/unsigned seal, and the date and time added.
- Tap to view the PDF. A contract awaiting signature shows an orange Sign the contract now bar under it.
- Swipe left to Share or Delete (admin‑gated; a voided contract can't be deleted). Swipe right on a contract awaiting signature to Sign it.
- Export all bundles every contract to the share sheet; with a period or a search on, it reads Export these and bundles only the ones listed.
- Nothing listed? The screen says why (no contracts yet, none in this period, or none matching the search) and offers Start a rental, Show all dates or Search all dates.
- Stored contracts regenerate automatically to reflect later branding edits when next viewed (a signed contract is preserved as signed).
5b. Customer care (tab)#
Everything about looking after the people lives here (hideable like any tab):
- Needs attention: the customer‑facing part of today's plan (pick‑ups, no‑shows 30 minutes after a missed pick‑up, due‑backs, balances, waitlist matches), each row with call/message shortcuts.
- Customer care: look anyone up: rentals, last visit, total business, usual class, upcoming booking (with flight), licence flag, your preference notes, their message language (editable here), one‑tap Call / Review ask / Info pack, and a “Draft any message…” menu offering everything their situation allows, booking confirmation, pick‑up reminder, still‑coming, payment receipt, balance reminder, thank‑you.
- Customer lists: the Waitlist and the Do‑not‑rent list live here too.
- Message offers: the "offer a thank‑you after each return" and "offer a confirmation after each booking" switches (moved here from General app settings).
- Service settings: your review link (appended to thank‑yous after clean returns), accepted payments (woven into booking confirmations), and the welcome/info pack text (built‑in default covers how to reach you, drive‑on‑the‑left, accident steps and the fuel policy; tokens like {company}/{phone} resolve live).
- New drafts: Ask for a review, Welcome/info pack, Are you still coming?, Payment receipt ("Send a receipt" on any rental with payments). Booking confirmations now state the estimated total, expected deposit, accepted payments and flight number. Each customer can carry a message language: with AI drafting on, drafts are written in it.
6. Calendar#
A rental or booking with a planned swap draws as two segments on the timeline: solid on the stand‑in until the swap date (⇄‑tagged), and a dashed same‑colour "reserved" segment on the intended car from the swap date, matching exactly what the availability engine holds.
A segmented view: Timeline · Month · Week, with a tappable filter bar (All / Rented / Booking).
- Timeline: a Gantt‑style grid: one row per vehicle (with the make/model as the focus and the plate small beneath), coloured bars for each rental/booking, and a “today” marker. A horizontal split at the bottom shows a “Gaps to fill” panel listing genuine idle gaps between commitments on a vehicle within the next 30 days; tap + on a gap to start a booking that fills it. Tap any bar to pop up its details with “Open full details.”
- Month: a month grid; days with activity show dots. Tap a day to list its pick‑ups/returns/bookings below; tap an entry to pop up its full details.
- Week: each day of the week listed in order with times; tap an entry for its popup.
Use the arrows to move between months/weeks. Popups carry the vehicle, customer, dates, locations and total, and a button to jump to the underlying rental/booking.
7. Scanning#
The app reads four things with the camera (all on a real device: the simulator has no camera; type the value instead):
- Vehicle plate / QR sticker / barcode: used to pull a car up (the Scan a car lookup) or fill the plate when adding a vehicle. Found via VisionKit; tap a plate to select it, barcodes/QR auto‑deliver. A success beep + haptic confirms a read.
- Driving licence: on Customers → + → Scan licence, Apple's document scanner opens on iPhone and iPad. Lay the licence flat in good light (a darker surface helps it find the edges). It finds the card, flattens it and takes the picture itself once the card is steady. Scan the front, then the back if it has details, then tap Save. The app then reads the name, licence number, issue and expiry dates and address on the device, pairing each label with the value beside or below it, and reads the barcode on North American licences. Upload photo works with any photo of a licence: the app finds the card in the photo first, and enlarges small print before reading it. Scan with AI (opt‑in) sends the licence images, both sides, to Claude for far better reading of worn or foreign cards. Boxes to check. After a scan, any box the scanner isn't sure of is tinted amber, with a close-up of where it was read on the card: tap Looks right, or correct the box (editing it counts as checked). A box is marked when it was guessed rather than read beside its label, when the reader was unsure of it, when a check fails (a UK licence number must match the surname and birth date; Ontario and Finnish numbers carry the birth date or a check character; US numbers have a fixed shape per state; dates must make sense together), or on a blurred or glared picture. Boxes read from a barcode, or confirmed by those checks, are trusted. Saving with amber boxes left asks you first. The scanner reads barcodes on both sides (US and Canadian licences carry every detail in the one on the back) and tells you when the picture is blurry, glared or too small, so you can scan again. With Scan with AI, the on-device reading runs too, and any box where the two disagree is marked.
Multi-frame licence camera (new, optional). In Settings → General app settings → Licence camera, turn on Multi-frame licence camera on a device to have Scan licence watch the card and keep its three sharpest steady pictures of each side; the readings are compared, a misread in one picture is outvoted, and anything they disagree on is marked amber. Off, Apple's document scanner takes one picture per side.
It reads licences in English, Spanish, French, Portuguese, German, Italian, Dutch and the Scandinavian languages (labels, accents and month names), the EU numbered layout in any language, and names and addresses in other alphabets, which are saved in English letters (a Russian name is saved as "Ivan Petrov", a Chinese one as "Wang Wei"). Ontario licences (every box, with the number checked against the birth date and surname), Barbados licences (name, number and address), passports, ID cards and residence cards with a machine-readable code (the code lines confirm the details: scan both sides when there's a back), and EU licences whose small field numbers didn't read are handled too. A card photographed sideways, upside down or slightly tilted is turned upright first; if glare spoils the name, the app reads the card again and marks the name for checking. The card's own title (such as "Driving Licence" in another language) is never taken for the customer's name. Postcodes and US states are kept in capitals (EH1 9GP, NY 10001). A customer whose licence prints the name twice (English letters and another alphabet) is matched to the existing customer rather than added twice. Always check the fields before saving.
- Receipt: on Expenses → Scan a receipt, reads vendor, amount, date and a likely category on‑device; Scan with AI improves faint/handwritten bills.
- Credit card (security deposit), reads the 13 to 19‑digit number and the expiry (MM/YY), keeping the later date as the expiry.
The “Scan a car” lookup (the scanner icon on Vehicles, and the Home quick action): scan or type a plate/sticker, then pick a status‑aware action:
- Available → Start a rental · Book for later · Log an expense · Send for repair.
- Out on rent → Return vehicle · Extend · Shorten · Log an expense.
- In repair → Return from repair · Log an expense.
- Out of service → Mark available · Log an expense.
- Not in your fleet → Register it as a new vehicle on the spot.
All AI scanning is off by default, requires your own Anthropic API key, and always falls back to on‑device reading if AI is off, unkeyed, or unreachable. See §17.4.
8. Conflict detection & resolution#
Whenever a rental/booking/extension would overlap another commitment on the same vehicle, including a cleaning turnaround buffer (default 1.5 h, configurable), the app flags it inline and, on save, raises a colour‑coded popup ranking the best fixes. You always keep control; nothing auto‑applies, and you can always Override & Continue (with a reason).
Recommended fixes can include:
- Switch to a close free car: a similar available vehicle (matched on class, tier, seats, transmission, drivetrain, fuel, price closeness, make/model, year and features), with the price/quality difference shown.
- Start later or finish earlier on the same car (date suggested after the cleaning gap).
- Bridge then swap (rentals only), lend a stand‑in now and swap onto the intended car when it's back and cleaned. This reserves the intended car for the swap and adds a reminder; you confirm the swap in one tap from the rental detail or Home when it's due.
Severity colours: green (clean) · blue (small adjustment) · orange (a compromise).
9. Drafted customer messages#
From a rental or booking detail, tap Message the customer to draft a ready‑to‑send message. Nothing is ever sent automatically: you review and send it yourself.
- Types: Booking confirmation · Pick‑up reminder · Return reminder · Overdue (please return) · Thank‑you · Fine/toll notice · Balance due reminder (quotes exactly what's still owed) · "The car you wanted is available" (waitlist match). The app pre‑selects the most likely type for the record's state, e.g. a returned rental still owing money opens on Balance due.
- Tone: Friendly · Formal · Brief.
- Editing: the email subject and body are fully editable.
- Send your way: WhatsApp them / Text them: when a phone number is on file, one tap opens their chat with the drafted text already in place, so sending is a single press there (WhatsApp needs the number saved in international format, e.g. +1 473…; these buttons are hidden from staff you mask customer details from). Or Copy, Share… (WhatsApp, Messages, etc.), or Email it: always available; it opens the mail composer pre‑filled with the subject, body, and the customer's email when it's on file (otherwise you type the address). If the device can't send mail, it falls back to a pre‑filled
mailto:link. - Source: by default drafts come from on‑device templates (offline, no data leaves the device). If you opt into AI message drafting, Claude rewrites them in a warmer tone and a Rewrite it button gives variations, sending only the first name, vehicle, dates and total to the cloud (never phone, email, address or licence).
- Thank‑you on return: when you complete a vehicle return, the app offers, in one tap, to send that customer a thank‑you message (it opens the thank‑you draft, pre‑filled with their name and vehicle, inviting them to rent again). You still review and send it; nothing goes out automatically. This prompt is on by default: turn it off under Settings → General app settings → “Offer a thank‑you after each return.”
AI & message settings live in Settings → General app settings (Message drafting, receipt/licence scanning, the API key, and the thank‑you‑on‑return prompt).
10. Expenses#
A running list of costs, grouped by month with a per‑month subtotal. Each row shows the category icon, the vehicle (or “General”), the date and the amount. Swipe to delete; tap to edit; + to add.
Add/edit an expense:
- Scan a receipt (on‑device) or Scan with AI (opt‑in), or Choose a receipt photo: fills vendor, amount, date and category for you to check.
- Receipt copy kept as proof: the scanned/chosen photo is stored as a compressed copy on this device (encrypted, never synced) attached to the expense: view it from the expense, or remove it before saving if you don't want it. Export all of a period's copies as one PDF from Income & Expenses → Export → Receipt copies (PDF): one page per receipt with the date, vendor, category and amount, ready for your accountant. If storage ever gets tight, Settings → General app settings → Receipt copies shows how much space they use and can clear copies older than a year (or all of them), the expense records themselves are never touched.
- Category: Fuel · Insurance · Maintenance · Repairs (accident/damage) · Licensing · Cleaning · Other.
- Amount, date, vendor / paid to, vehicle (or General, no vehicle), and a note.
Expenses feed the Reports profit & loss, the per‑vehicle profitability, and the Financials operating costs.
11. Vehicles#
Your fleet, as a grid or list (toggle in the toolbar), filterable by status and searchable by plate/make/model. An empty filter says so in its own words and offers the action that fills it: Available → Add a vehicle; Rented → Start a rental; In Repair → Send a vehicle to repair (pick a free car, then the usual repair form); Out of Service → Take a vehicle out of service (pick a free car, add a reason; a warning shows if bookings hold it; Mark available on the car brings it back). Every available car's actions also include Take out of service. The scanner icon (top‑left) opens the Scan a car lookup. + adds a vehicle.
Vehicle detail:
- Hero with photo, plate, make/model and status.
- Status‑aware actions: Available → Start rental / Book / Send to repair / Take out of service; Rented → Return / Extend / Shorten (+ Book ahead); off‑fleet → Book ahead.
- Identity & rates: sticker code, year, VIN, daily rate, odometer.
- Specs: quality tier, class, seats, transmission, drivetrain, fuel, manual “similar to” list.
- Profitability: rental income, repairs + expenses, and net for this car.
- Logbook: this vehicle's activity timeline.
- Rental history and Repairs lists.
- Log a service: a one‑tap shortcut to record a maintenance/service against this car (it files a maintenance expense), which is also what clears its "service due" reminder.
- Send to repair: move the car into the shop with an estimated return; it shows as In repair and raises a reminder if it's overdue back.
Add/edit a vehicle: Scan number plate (device), a photo (used as the car's icon), identity fields, daily/weekly/monthly rates (0 = derive weekly/monthly from daily), status, odometer, the full specs, features (air‑con, GPS, Bluetooth, CarPlay / Android Auto, reverse camera, 360° camera, child seat, sunroof, leather seats, roof rack, USB charging), a hand‑picked “similar to” list (offered first as alternatives in conflicts), and notes.
12. Customers#
Your client list, searchable by name/phone/email/licence. Each row shows initials, name, contact and rental count. Swipe to delete (admin‑gated). + adds a customer.
Add/edit a customer:
- Scan licence (on‑device) / Scan with AI (opt‑in) / Upload photo to auto‑fill from a driving licence.
- Details: name, phone, email.
- Licence: number, issue date, expiry date.
- Address: local and foreign (for visiting/tourist drivers), each with its own phone.
- Duplicate guard: the moment a licence is scanned (or on save), if the person is already on file (matched by phone, licence or name) the app offers to use the existing record instead of creating a duplicate.
Customers can also be bulk‑imported from CSV (§17.7) and are created automatically while starting a rental.
13. Supplies#
Track consumables you keep on hand (oil, wipers, brake fluid, keys, fuel cards…).
- Each item shows a stock bar, the quantity on hand, the unit cost, and a Low badge when at/under its reorder level. The footer shows total stock value.
- Tap an item to log usage (decrement, optionally tied to a vehicle, with a note, this also adds a logbook entry).
- Swipe to Restock (increment) or Edit / Delete, or use the row menu.
- + adds an item (name, quantity, unit cost, reorder level).
Low‑stock items appear in Home → Today's plan and the status counts.
14. Activity (Log)#
A unified, newest‑first timeline of everything that happens, filterable by vehicle:
- Rented out and returned (from rentals), repairs, expenses, supply usage, and manual notes.
- Each entry shows an icon, title, the vehicle, a subtitle and an amount/date.
- + adds a manual note (title, detail, optional vehicle); manual notes can be swiped to delete.
- Each vehicle also has its own logbook (from the vehicle detail screen).
Accountability on the rental itself. Every rental shows Handled by (who started it) and, once returned, Returned by (who checked it in); each logged payment shows who recorded it. These are the signed‑in person (a staff member's name, or "Owner"), previously every rental was stamped "Owner" regardless of who did it. Team activity, "who did what" (multi‑device). When you work with staff (§17.6), the log records who did each action, and, while your app is open, you get a notification when a staff member does something on another device ("James booked a vehicle"). Your own actions never notify you back, money amounts are kept out of the alert text, and you can turn the whole "team activity" alert off. The activity log itself syncs across devices like everything else. (These alerts arrive while the app is open; always‑on closed‑app push is planned, see §17.6 and the Feature Log.)
15. Income & Expenses (Reports)#
A profit‑and‑loss view over a chosen period (This month / This year / All time). This area is admin‑gated when a lock is set.
- Overview chart: income, repairs, expenses and net as bars.
- Profit & Loss: rental income, minus repairs and expenses, equals net profit.
- Expense mix: a donut of spending by category, plus the category breakdown.
- Net by vehicle: a bar per car (green/red).
- Per‑vehicle profit / loss: tap a vehicle to expand every rental's income and every expense/repair behind its net; tap a rental to open its contract, and tap an expense with a receipt badge to see its stored receipt copy. Export a single vehicle's figures as PDF or CSV: the PDF export asks what to include: report only, + receipt copies, + contracts, or both, and the chosen extras are appended as pages inside the one PDF (signed contracts exactly as signed) so a single file carries the vehicle's complete paper trail.
- Export (toolbar), the full report as PDF or CSV for the selected period, the accounting CSV, the period's receipt copies (PDF), and the Accountant pack: the P&L report, every contract in the period (signed ones exactly as signed) and every receipt copy, merged into ONE self‑contained PDF to hand your accountant at year‑end (pick This year first). It pairs with the accounting CSV, which carries the same numbers in journal form.
All figures reconcile: the drill‑downs read the same filtered records as the totals.
16. Financials#
A lender‑ready snapshot of the business, a balance sheet, cash‑flow/loan coverage, and a one‑tap export pack. Admin‑gated when a lock is set.
- Summary: net worth (equity), total assets, total liabilities, reported in a currency you choose.
- Enter / edit figures (a pop‑up), cash on hand, what each vehicle is worth, other assets, and any loans (balance + monthly payment). You can report in a different currency from your billing currency, with an exchange rate that converts your rental income/expenses.
- Assets: cash, each vehicle's value, fleet value, other assets.
- Liabilities: your loans, total owed and monthly payments.
- Cash flow & loan coverage (this year): rental income, operating expenses, repairs, net operating income, annual loan payments, net cash flow, and DSCR (debt‑service coverage ratio; banks usually want ≥ 1.25).
- Export for the bank: bundles the balance sheet, cash flow, fleet/collateral list and full P&L into one PDF or CSV.
17. Settings#
The Settings landing page splits into four areas: Company & contract, General app settings, Import customers & vehicles, and About. Settings is admin‑gated when a lock is set.
17.1 Company & contract#
- Business: name and tagline.
- Logo: choose/remove (used on contracts and the app).
- Contact: email, phone, website, address, social handles.
- Currency: billing currency; an optional second currency on contracts with separate cash/cheque and card exchange rates.
- Tax: VAT on/off and rate.
- Temporary driving licence: per‑licence fee for foreign drivers.
- Design & preview contract: opens the contract designer.
- Have us set up your own contract: send the contract you already use; Mabele sets it up for you, free (§5.3).
- Change signed contracts only by Void & edit: owner option, off by default (§5.3).
- Payment links: your own payment pages, and Connected companies (PayPal, Stripe) with Save and test the connection and Disconnect (§5.3).
- Use the card rate for payment links (under Currency, with a second currency), on by default.
- Remote signing: where signing links go, the signing credits, and Two renters → Send both renters' links in one go (on by default, §4).
17.2 Contract design & the contract PDF#
A live‑preview designer:
- Layout: choose a page‑1 style: Branded, Classic grid, Rental form, Two‑column, Document, Invoice, Compact, plus Custom (build it element‑by‑element in the contract builder) and Imported (upload your own fillable PDF; Auto‑map or Map fields with AI match its blanks to your data, including the renter's signature and the damage/condition diagram as image fields, the card expiry, the 2nd‑currency total, and separate local and foreign addresses). The header/footer and pages 2 to 3 stay consistent across layouts.
- Add fields the form doesn't have: auto/AI mapping can only see fields your PDF declares; blanks drawn as plain underlines are invisible to them. In Edit fields on the contract, tap + to add a text field or tick box anywhere on any page, choose what fills it, then drag/resize/style it like any other field (or delete it). This works even on a PDF with no form fields at all, a flat scan can be set up entirely by hand. Fields you add travel with the shareable contract‑setup pack and survive Auto‑map re‑runs.
- Header: logo, banner background image, band height, space below, alignment, accent colour, font, and an edit‑layout designer for text/image placement.
- Footer: custom text or your live contact details (use
{contacts},{phone},{email},{website}tokens), alignment, banner image, and its own layout designer. - Layout extras: line spacing, repeat header on every page, show page numbers.
- Vehicle examination page: turn on/off, and pick which parts show (details box, damage key, diagram, checklist, signatures). It is part of every contract, including an imported contract (appended there as an extra final page, without the diagram/key sections, your own form already carries those). The condition checklist is ticked on the rental form and prints here.
- Wording: contract title, agreement intro (
{company}/{customer}tokens are filled per contract), definitions, terms & conditions (one clause per line), signature statement, and damage/theft liability limits. Restore default wording resets these.
The generated contract is a multi‑page PDF: the agreement (page 1, your chosen layout), definitions & terms, and the vehicle‑examination page (diagram, checklist, condition signatures).
17.3 General app settings#
- Theme: System / Light / Dark, plus an app accent colour.
- Reading size: a slider (under Theme) that enlarges the Home screen and the iPad sidebar text; the layout grows to match (rows get taller, longer text wraps). It only ever increases the size, never shrinks below your device's own text setting, and it's a per‑device preference, so it isn't part of any backup or export. On iPad you can also drag the same Text size slider at the bottom of the sidebar.
- Guided tour: show on startup, replay.
- Scheduling: cleaning turnaround (the minimum gap enforced between a car's return and its next pick‑up the same day), service reminder (months since last maintenance before a car is flagged on Home), and the unfinished‑rental reminder (days a saved draft can sit before Home nudges you).
- Show tabs: hide tabs you don't use (Home always shows).
- Dashboard: choose which Home sections appear.
- Admin access & security: see §17.5.
- Card security deposit: wipe the stored card on return (default), or keep it a set number of days.
- Contract delivery: your owner email, and “Email a copy when signed” (opens a pre‑filled email on signing; off by default).
- AI features: see §17.4.
17.4 AI features#
All AI is off by default and uses your own Anthropic API key (stored encrypted in the device Keychain; you pay your own usage).
- Enable AI features: the master switch (turning it off disables all cloud AI at once without deleting your key).
- Use cloud AI for licence scanning: better reading of foreign/worn licences.
- Use AI to read receipts: better reading of faint/handwritten bills.
- Use AI to draft customer messages: warmer message drafts (§9).
- Anthropic API key: enter/clear it.
- AI model: Haiku (cheapest, fine for most) · Sonnet (balanced) · Opus (most accurate).
- Every AI path falls back to on‑device if AI is off, unkeyed, or unreachable. With no key, everything stays on‑device.
17.5 Security & Privacy#
Everything that protects the business now lives in one organised Security & Privacy screen (previously these controls were scattered through General settings). It has four areas:
(a) This device, admin lock & access. Protect sensitive actions behind a PIN and/or Face ID / Touch ID:
- Set / change the Admin PIN (tap its row, changing or removing an existing PIN re‑authorizes first). New PINs need at least 4 digits (6 recommended). The PIN itself is never stored anywhere: only a one‑way code in the device's secure Keychain, and 5 wrong attempts trigger an escalating wait (30 s, then longer), so it can't be guessed by brute force. Enable biometrics too and you can require both.
- "Require a PIN for…" chooses exactly which actions are locked. Lockable actions: show/hide tabs, change rental rate & charges, change VAT rate, edit a contract/charges, delete a contract, edit or delete a signed contract without voiding, send a payment link (also covers deposit holds), delete a customer, reveal card deposit details, change company/contract settings, change scheduling rules, override a scheduling conflict, import lists, export customer/vehicle lists, view financials, change cloud sync settings, and change security settings (always protected so the lock can't be quietly disabled).
- A successful unlock lasts 5 minutes for non‑critical actions. Revealing a card and weakening security always re‑prompt. Until you set a PIN/biometrics, nothing is locked.
- Optional Staff PIN: a second passcode to share when one device is used by both you and staff. It only unlocks the limited operational privileges you pick under "Staff PIN privileges", never finances, card details, exports, deletions or security (those always need your Admin PIN).
(b) This device, money on screen. See §17.5 note below and §2's finance overview. The key rule: you, the signed‑in owner, always see every amount. The "Hide amounts on this device" toggle is only for a single shared device (used via the Staff PIN), it masks money totals for whoever picks up the not‑signed‑in device, while leaving the per‑day rate and deposit visible so they can still do rentals. A new rental's total stays visible for a short transaction window so a charge can be confirmed, then re‑masks. The in‑app contract preview follows the same window: a staff member who can't otherwise see amounts sees the contract's figures for those same minutes after the rental is created (to confirm the charge with the customer), then it re‑masks; the owner and staff with "View financials" always see them. (Sharing/exporting the contract always sends the real, full‑value PDF and requires admin.) For staff who sign in with their own account, don't use the device hide: control who sees money per employee in §17.6's Team screen ("View financials").
(c) This device, card security deposit. Choose whether a held card deposit is deleted automatically on the vehicle's return (default), or kept for a set number of days. See §5.3's return safeguard: if a car comes back with an issue, the card is not auto‑deleted, you get a reminder to settle first.
(d) Whole‑app biometric lock. Optionally require Face ID / Touch ID (or the device passcode) every time the app is opened or brought back from the background, a second line of defence on a signed‑in device, separate from the per‑action admin lock.
Security hardening (build 160). A full security audit's fixes are built in: your data files are encrypted at rest while the device is locked; the app switcher shows your brand, never your data; revealed card details copy via a clipboard that self‑clears in 60 seconds and never hands off to other devices; exported CSVs are guarded against spreadsheet formula tricks; and the card Authorization field warns that it must hold the terminal's approval code, never the card's 3‑digit security code (CVV), which card rules prohibit storing. One tip: iOS shows notification text on the lock screen by default, if you'd rather customer names weren't visible there, set iOS Settings → Notifications → Show Previews → When Unlocked. After updating, open Cloud sync and re‑publish the security rules once: that switches on the server‑side suspension enforcement.
(e) Password rules for logins. Set the rules every login's password must meet, a minimum length and optional require a letter / number / symbol. They apply wherever a password is set (creating a staff account and any password change) and sync to staff devices, so their own password changes follow the same rules. (Firebase always enforces at least 6 characters; your rules add to that.)
Money‑visibility rule (updated 1 July 2026). The signed‑in owner always sees everything: the on‑screen hide never blanks your own view. Staff who sign in with their own account see money only if you grant them "View financials" (per person, in Team). The "Hide amounts on this device" control exists purely for the single‑shared‑device case.
17.6 Cloud sync, staff accounts & multi‑device#
In the app: Settings → Security & Privacy → Cloud sync (admin‑gated).
The app works two ways, and it asks you once on first launch (the launch chooser) then remembers:
- Just this device: best if your whole business runs on one device. Everything stays on the device; no account or internet needed. All the other controls (notifications, the Staff PIN, hide‑amounts, card rules) still work. You can switch to multi‑device later.
- Multiple devices & staff: sign in to your company account so your data syncs across devices and you can add staff logins.
A web version of the setup also exists (host it yourself; source in the repo at web/index.html), the same steps in a browser with buttons that deep‑link to the exact console pages and copy your rules. In the app it's linked as "Open the web setup wizard" on the Cloud sync screen and inside Guided setup, pointing at your hosted address. The in‑app guided setup (recommended): on the sign‑in screen tap "I'm the owner, set up my company" (also under Cloud sync → Guided setup). It walks you through every step below with buttons that do the work, open the console, copy the bundle ID, import the file (live ✓), create your login (live ✓), copy the rules, about 10 minutes, no tech skills needed.
Photos & signatures across devices (media sync). Record sync alone keeps the heavy evidence media, handover/return photos and the signed diagram/signatures: on the device that captured it, so a contract opened on another device regenerates without them. Turn on Cloud sync → "Sync photos & signatures" to fix that: media uploads to your project's Firebase Storage through a queue that survives being offline (a dead spot at handover loses nothing), and other devices fetch a rental's media only when you open that rental or its contract: a big fleet's history is never mirrored onto every phone. When you switch it on, the app uploads the photos for the rentals you already have (not just new ones), there's also an "Upload existing photos now" button to re‑run that catch‑up. One‑time console setup: Build → Storage → Get started (this asks to upgrade the project to the Blaze pay‑as‑you‑go plan, card on file; small fleets fit in the free allowance, and even a 200‑car fleet costs roughly US$0.50/month), then paste + publish the Storage rules shown on the Cloud sync screen (separate from the Firestore rules), and use Test storage to confirm, it round‑trips a tiny file and reports ✓. Deleting a rental's photos after a clean return removes them from Storage too.
The same steps, in writing (Firebase, free, fully self‑serve, no app update needed):
- In a browser go to console.firebase.google.com, sign in with a Google account, Add project (the free Spark plan is fine).
- Add app → iOS, enter the Bundle ID
com.samgabsam.rentalmanager, and downloadGoogleService‑Info.plist. Save it to your device. - In the console: Build → Firestore Database → Create database (production mode), and Build → Authentication → Get started → enable Email/Password.
- In the app, on the launch chooser tap Multiple devices & staff (or Account → Sign in), Import Firebase config and pick the plist.
- Create your company account (turn on "I'm setting up a new company (first time)") with an email + password. Your existing data uploads once, then stays in sync.
- Paste the security rules shown on screen into the console (Firestore Database → Rules → Publish) so only your company can read your data.
iCloud (CloudKit) alternative: Apple‑native, syncs across your own Apple devices only; needs the paid Apple Developer Program ($99/yr) and an app update to add the capability, then turn it on under Cloud sync.
Staff accounts & roles, the owner decides what each person can see and do. Once you're signed in on the cloud, open Account → Team & staff access (owner‑only):
- Add a staff member: type their name, email and a temporary password and pick a role. The app creates their login; you hand them the credentials. They sign in on their own device and your company data appears (their sample data is never pushed up).
- Named roles you can tweak: three presets that you then adjust per person:
- Manager: runs the day‑to‑day (rentals, contracts, scheduling) and can see the money; can't change security or cloud/team settings.
- Front desk: takes rentals and edits charges, but financial totals stay hidden.
- Viewer: read‑only.
- Per‑person permissions (what they can DO): after picking a role, tick/untick each individual permission: View financials, reveal card details, edit a contract/charges, delete a contract, edit or delete a signed contract without voiding, send a payment link (also covers deposit holds), delete a customer, change rental rate, change VAT, export/import lists, export a contract, change scheduling, override a conflict, show/hide tabs. Security, cloud and company/contract settings always stay owner‑only and can never be part of a role.
- Tabs & areas they can open (what they can SEE): turn any operational tab off for this person to hide that whole area from them (e.g. hide Expenses, Customers, Calendar, Supplies, Reports or Financials). Home always shows; Settings stays owner‑only. A hidden tab simply doesn't appear for that staff member.
- Customer details: a "See customer contact & licence details" switch. Turn it off and that person sees a customer's name (needed to run a rental) but not their phone, email, licence number or address, on the customer list and on rental and booking screens.
- Changes apply on the staff member's device at the next sync (within seconds), no need for them to sign out and back in.
- Suspend or remove: turn a member's "Access enabled" off to suspend them (keeps the record) or remove them entirely. Either way their device is signed out and the company's data wiped from it at its next sync (records, drafts, contracts and any card entries), and the server refuses their requests. A device that stays offline keeps its last copy until it reconnects, collect the device if that matters.
- Reinstate: a suspended member comes back by turning "Access enabled" on again (they just sign in). A removed member's login still exists: use Add staff with their same email, the screen switches to "Reinstate this account"; enter the account's current password (or send them a password-reset email first if it's forgotten) and they're re-attached with a fresh role and permissions, password unchanged. They sign in on their device and the data downloads fresh.
- Enforcement is in two layers: the server rules ensure only invited members can reach the data at all, and the app shows each person exactly what their permissions allow.
The Account button & signing in anywhere. A person icon is always available, in the iPhone toolbar and the iPad sidebar. Signed out it opens the sign‑in screen; signed in it shows who you are, your role, the biometric‑lock toggle, the sync controls, Change password, and Sign out.
Passwords. You give each staffer a temporary password; they (and you) can change it anytime under Account → Change password: so only they know their own password. If anyone forgets theirs, the sign‑in screen has "Forgot password?" which emails them a reset link (so their email must be one they can open). You can't reset another person's password from the app, that's what the reset email is for, or, as a last resort, reset it in the Firebase Console. The owner can sign in on any device (including one a staffer used), sign the staffer out first, then sign in with your owner email/password (leave "first time" off).
Signing out hides everything. When you sign out, the app immediately returns to the launch/sign‑in wall, company data is no longer visible. A staff member signing out also clears the company data from their personal device.
Using it day to day:
- Changes sync automatically: you never have to open Settings to sync. It works offline and catches up when you reconnect.
- Near‑real‑time: an open app checks for changes from other devices every few seconds and pulls them in, so two people working at once stay current. You can also pull down on the main lists to sync on demand.
- Whole‑app biometric lock (§17.5d) can be turned on per device to keep a signed‑in device behind Face ID / Touch ID.
Closed‑app push (a notification the instant a staffer does something, even when your app is fully closed) is planned but needs the paid Apple Developer Program and a small server component, see the Feature Log. Today's team alerts (§14) arrive while your app is open.
17.7 Import customers & vehicles#
Imports show a "please wait" overlay with a live progress bar and land as one batched save (fast even for large lists). Files from Excel, Numbers, Sheets, iCloud Drive or AirDrop all work (Windows‑style line endings included). The vehicle template now carries weeklyRate and monthlyRate: set them and the up‑sell nudges and quotes use them.
Bulk‑add from CSV, and export your lists (admin‑gated):
- Download a template (customers or vehicles) to fill in with Excel/Numbers/Sheets.
- Export (admin‑only): Export customers (CSV) and Export vehicles (CSV) produce your full lists as CSV (re‑importable here, or open in a spreadsheet). Requires admin authorization (personal details); card deposit details are never included.
- Customers: required column
name; optional phone, email, licence number, issue/expiry dates, address, foreign address/phone. - Vehicles: required
plate, make, model; recommendedyear, dailyRate; optional sticker code, VIN, odometer, class, tier, seats, transmission, drivetrain, fuel, features (semicolon‑separated), location (branch/lot name, feeds the multi‑location filters), notes. Status is not imported: it's determined by what actually happens in the app (rentals, repairs), so every imported vehicle starts Available. - Headings aren't case‑sensitive and common synonyms are understood (e.g. “registration” → plate). Duplicates are skipped (a customer already on file by phone/licence/name; a plate already on file). A summary reports added/skipped and any row errors.
17.8 About, privacy & terms#
Version, owner (© 2026 Mabele Innovations), contact email, and the full Privacy Policy and Terms of Use in English and Spanish (country-neutral templates, no jurisdiction is named; governing law refers to wherever the owner is established, while preserving your own local mandatory rights. Have them reviewed by a lawyer before relying on them).
Help & feedback (Report a problem). In Settings → Help & feedback, choose what it's about, describe it, and tap Send feedback: a ready email to Mabele opens, and you tap Send. Attach a diagnostic report (on by default) adds a text file of what the app did over the last 7 days and any errors it met (sync, PayPal, signing links, deposit holds, contract set-up, notifications), how long the app took to open, and Apple's own crash and freeze reports, with a summary of the device and settings (counts and switches only). It never holds customer names, phone numbers, emails, amounts, card or licence details. Tap View the report to read it first. Without an Apple Mail account (for example if you use Gmail), Send feedback opens the share window with your message and the report together; Share the diagnostic report… shares the file on its own. Tap Done above the keyboard to put it away.
17.9 Notifications & reminders#
Long‑press any reminder for actions. Every reminder offers Remind me tomorrow (pause just that one until 9am) and Mute “[kind]” reminders (stop that kind, re‑enable in Settings › Notifications). Depending on the reminder: Mark deposit refunded, Confirm the booking and Swap now do the thing right from the notification (each is logged); Message the customer, Record the payment and Log a service open the app on the right screen with the right sheet already up. A plain tap still opens the matter's screen.
Settings → Notifications & reminders. On‑device reminders for the things a rental business must not forget. They're off by default; the master switch asks iOS for permission the first time.
- What you're reminded about: an overdue rental, an upcoming pick‑up, a car overdue back from the shop, a vehicle‑swap due, a tentative booking to confirm, a service due, road‑tax/registration, inspection and insurance renewals, a deposit to refund, and a card deposit to close off (from the return safeguard, §5.3).
- Mute any kind individually, and set how many days ahead each date‑based reminder fires (pick‑ups, swaps, tentative chases, and the early/final renewal nudges).
- Compliance dates are per vehicle: set each car's insurance/inspection/registration expiry on its edit screen; the renewal reminders use them.
- Nothing is sent to customers and nothing goes to a server, every reminder is computed locally on each device from its own copy of the data, recomputed each time the app opens.
- Catch‑up on open: a reminder whose time passed while a device was off is delivered a few seconds after you next open the app, so nothing is missed.
- Tap to open the right screen: tapping a reminder opens the exact item to deal with: a rental reminder opens that rental, a pick‑up/tentative one opens that booking, a service/renewal one opens that vehicle. It works even from a cold start (tapping when the app was fully closed).
- Team activity alerts: with staff on multiple devices, you're also notified when a staffer acts on another device (§14). With Firebase sync through Mabele's service, these now arrive even when the app is closed.
- Money and contract alerts: Payment received when a connected payment link is paid (with PayPal, even with the app closed), Deposit hold approved when a customer approves a PayPal hold (even with the app closed) and Deposit hold placed once it's held, and contract set-up news from Mabele (questions, messages, ready to check), with a badge on the app icon. These follow the device's notification permission and your reminders switch.
A reminder stops on its own the moment its cause is resolved, log the service and "service due" clears; refund the deposit and its reminder clears; close off the card and the "card deposit" reminder clears.
18. Privacy & data safety#
- Local‑first, cloud‑optional. By default your company details, vehicles, customers, rentals, contracts, expenses and settings are stored only on your device. If you choose multi‑device mode (§17.6), that data syncs to your own Firebase (or iCloud) account under security rules that only your company can read, never to any server the developer runs. A one‑device business needs no account at all.
- Card details (number, expiry, authorization) are held in the device's encrypted Keychain, shown only after you authorize, never written to the data file or a backup, and wiped automatically when the vehicle is returned unless you choose otherwise. Contracts print only the last 4 digits.
- Optional AI sends a single photo/contract page (or, for messages, only first name + vehicle + dates + total) to Anthropic using your API key, only to return the result. Your key stays in the Keychain. Leave AI off and nothing leaves your device.
- Signing links, payment links and deposit holds. A signing link's contract pages pass through Mabele's signing service (or your own Firebase) only until the customer signs, then they're deleted. Payment links send the payment company only the amount, currency, contract reference and your business name; your PayPal or Stripe key stays in this device's Keychain. For alerts with the app closed, Mabele's service keeps only this device's notification address, PayPal's webhook or order number, the contract number and your business name: no amounts and nothing about the customer. Contract set-up files are deleted once the contract is installed or the request cancelled. Full wording: Settings → About → Privacy.
- Diagnostic report. The app keeps a private log on the device of what it did and any errors over the last 7 days, plus Apple's crash and freeze reports, with no customer names, phone numbers, emails, amounts, card or licence details. It's sent only when you attach it in Help & feedback (§17.8) and tap Send.
- No analytics, ads or tracking.
- Backups are your responsibility: keep the device backed up, and export contracts/reports regularly.
19. Glossary#
- Sticker code / scan ID: the unique code (e.g.
RM‑0001) printed as a QR/barcode on each vehicle; scan it to pull the car up. - Cleaning turnaround / buffer: the minimum gap required between one rental's return and the next pick‑up of the same car, enforced in conflict detection.
- CDW: Collision Damage Waiver, an optional charge added after VAT.
- DSCR: Debt‑Service Coverage Ratio: income left after running costs ÷ loan payments.
- Bridge then swap: lend a stand‑in car now and move the customer onto their intended car when it returns and is cleaned.
- Tentative vs Confirmed: a tentative booking still holds the vehicle for conflict purposes but signals it isn't finalised.
- Planned swap: a scheduled, owner‑confirmed move of an active rental onto another vehicle; it reserves the target car until done.
- Void: a cancelled contract, kept on file stamped VOID with its figures struck through. It no longer counts as a rental or as income.
- Awaiting signature: a contract issued without the customer's signature. It counts as unfinished (listed under Unfinished on Home) until the customer signs.
- Signing link: a private link that lets a renter read and sign the agreement on their own phone. It works once and expires after 7 days. Each renter gets their own.
- Payment link: a link to your payment page (or a PayPal invoice or Stripe page) for an exact amount, with the contract reference.
- Connected company: PayPal or Stripe linked to the app with your own key, so its links mark themselves paid.
- Deposit hold: a security deposit set aside on the customer's PayPal account, not paid. Released at return, or partly taken for damage. Guaranteed for 3 days, lasts up to 29.
- Card on file: the customer's card recorded for the rental, kept encrypted on the device; it may also be held as the security deposit.
This manual is kept in step with the app. When a feature changes or is added, update the relevant section here (and the Quick Start / Technical Architecture as needed).