One WhatsApp message in.One investor payout out.
نظام التشغيل لتأجير السيارات
One connected system, from the first WhatsApp enquiry to the signed bilingual contract, the keys-in-hand handover, the final VAT invoice and the investor payout. From 5 cars to 500.
Plus two AI agents you can switch on — meet them
- 5% VAT, modelled
- Salik & fines
- Deposit holds
- EN / عربي
Everything your operation already runs — connected in one place
Sound familiar?
You don't have a software problem. You have a connection problem.
Running a rental fleet isn't hard because the work is hard. It's hard because every step lives in a different place — and none of them talk to each other.
It’s 9 a.m. A WhatsApp pings — “GMC Yukon, 5 days?” You open a spreadsheet to check availability, tap out a quote on your phone, copy the customer’s details into a Word contract, screenshot it, send it back. They pay by a bank transfer you’ll reconcile “later.” Your driver shoots the car on his own phone. The Salik charges? You’ll chase those next month — if you remember.
Enquiries go cold
By the time you've switched apps to check a price, the customer booked whoever replied first.
The same car, booked twice
Two agents, one shared spreadsheet — and one furious customer waiting at the kerb.
Type it once. Then again. And again.
The customer's details re-keyed into the quote, the contract, the invoice and the chat.
Salik & fines just… vanish
Charged to you weeks later, and somehow never re-billed to the renter who actually drove.
“That scratch was already there”
A deposit dispute — and your only evidence is a blurry photo on a driver's personal phone.
VAT season dread
A lost weekend rebuilding in spreadsheets what the system should have done all along.
The quiet cost
None of it feels like a crisis. That's exactly why it's so expensive.
Each gap is small. Together they're a slow, invisible bleed — and it scales with your fleet, not against it.
lost to a slow reply
One enquiry that booked elsewhere while you were three apps deep looking for a price.
a month in unbilled Salik
Eighty toll trips that were charged to you and never re-billed to the renter who drove.
written off in one dispute
A deposit you couldn't defend, because nobody captured the car's condition properly.
Most operators can’t even see these leaks — they’re spread across tools that don’t talk. The bigger your fleet, the more there is to lose.
The shift
Six disconnected tools, or one connected system.
The work doesn't get simpler by buying more apps. It gets simpler when every step lives in one place and feeds the next.
Today
With Carfleet
- WhatsApp threads on someone's phoneOne inbox your whole team answers
- A booking spreadsheetLive availability that can't double-book
- Word and PDF contractsBilingual contracts, signed before they drive off
- Handover photos on a phoneEvery photo tied to the booking it belongs to
- The bank app and a card machineSix gateways and deposit pre-auth
- Accounting software, updated by handFTA-correct VAT invoices, synced to your books
What that's worth
Less time. Fewer errors. Nothing leaking.
Coverage
Seven people touch the car. One system.
A rental company isn't a set of modules — it's seven people handling the same car in turn. The argument for one system is that the handover the driver records is the same row the invoice bills from.
The customer
Never installs anything, and never has to phone you to find out where things stand.
- Asks on WhatsApp, Telegram, email or your site
- Signs on their phone with a one-time code
- Sees their rentals, invoices and documents in a portal
The AI sales agent
Answers in seconds at 2am, and is stopped by code from saying anything that isn't yours.
- Quotes only from cars that are actually free
- Every price checked against your fleet before it sends
- Hands to a human the moment it matters
The sales agent
One inbox instead of four apps, and a calendar that cannot be wrong.
- Four channels in one thread, with assignment
- Availability the database itself refuses to double-book
- Quote → booking → contract without re-typing
The fleet manager
Knows what every car is doing and what each one has cost.
- Service schedules per system, not one 'service due'
- A dated damage ledger per car
- Profit and loss per vehicle
The driver
A phone app for the twenty minutes that decide whether the return is an argument.
- Walk-around video, photos, odometer, fuel
- Damage tapped onto a car diagram
- Cash, change and a signature at the door
The owner
Finds out what is wrong from the software, not from the accountant in April.
- Fourteen money checks run every night
- FTA-correct VAT and a filing-ready return
- Every change attributable to a person
The investor
Sees their own car's numbers without asking you for a spreadsheet.
- Their own read-only portal
- Payouts from cash actually collected
- The same money can never be paid out twice
The driver app
The twenty minutes that decide everything.
Handover and return are where a profitable rental turns into an argument. Your driver carries both in their pocket — every photo, every reading and every scratch tied to the booking it belongs to.
On the phone
Damage is tapped, not described.
The driver taps the car diagram where the damage is and photographs it. At return, the handover marks appear underneath as dashed rings, so the difference is visible instead of arguable.
- Walk-around video, and photos auto-labelled by angle
- Odometer read from a photo of the dashboard
- Fuel level and an interior checklist you define
- Signature on glass, cash and change at the door
- The job cannot be closed without a GPS fix
The bad days
Any system handles a good day.
The difference shows up in the fine that arrives after the customer has gone, the scratch that was already there, and the signal that dies halfway through a return. Here is what happens then.
A speeding fine arrives three weeks after the customer returned the car and flew home.
It is matched to the rental whose dates cover the fine, the customer is told the same day so they can still contest it, and one catch-up invoice collects everything unbilled.
The customer swears the scratch was already there when they picked the car up.
The handover marks are drawn under the new ones as dashed rings, and only genuinely new damage is billed — with the photos and the timestamps behind it.
Two people open the same handover on two phones at the same time.
The database refuses the second one. There is exactly one handover per booking, so the baseline the return is judged against cannot be corrupted.
The signal dies halfway through recording a return, and the driver taps save again.
Nothing is billed twice. The retry never re-charges the excess kilometres, the damage or the late fee.
The car breaks down mid-rental and you have to give them a different one.
Swap it in place. The price you negotiated survives — it does not jump to the new car's rack rate — and the old car goes back to the fleet or straight to the workshop.
They bring it back two hours late.
They are charged about an hour, capped at a day, after whatever grace you set — not a whole extra rental day.
A customer sends a photo of a passport, and it turns out to be the friend who is paying.
It is filed as an additional driver instead of silently renaming the person on the contract.
Someone messages at 2am to say they have crashed.
A fixed safety reply goes out — never written by the AI — an incident opens, your on-call is alerted, and the bot stops talking.
Open platform
Ask your fleet a question.
Point Claude or ChatGPT at your workspace and talk to it. No typing thirty cars into a form, and no CSV that fails on one column — tell the assistant and it writes them in. The figures below are illustrative; the questions and instructions are real.
Set-up by conversation
No data entry. No CSV.
Twenty of the twenty-six tools read; six write, and those six touch only your fleet and your price list — add vehicles, change rates, move a car's status. That is precisely the tedium of the first week. The things that matter, a key simply cannot do.
- No customer identity document ever reaches the model — an allow-list, guarded by a build check
- A key can never exceed the role it was minted against
- The key is shown once; only its fingerprint is kept
- Every API write needs an Idempotency-Key, so a retry cannot double-book
- Webhooks are timestamp-signed, with eight attempts across a day
Add the three Patrols we just bought — plates, rates, the usual insurance.
Added three vehicles and set their daily, weekly and monthly rates. Two need a Mulkiya photo before they can go out.
How many cars are sitting idle this week?
Six. Four in Dubai Marina, two at the workshop — three of them have been free eleven days.
Who owes us money right now?
Nine customers, AED 84,200 outstanding. AED 31,700 of it is more than sixty days old.
Which cars are due for service before the end of the month?
Three: two on mileage, one on date. One of them is out on a rental that returns Thursday.
Guarantees
Things that cannot happen.
Every system promises to prevent double-bookings, and usually that is a check in code some other path goes around. These are enforced by the database itself — with the mechanism named, so you can check.
The same car cannot be rented to two people at once.
A Postgres exclusion constraint over the booking's time range refuses to commit the second one — so it holds for the calendar, the API, an import and a race alike, not only for the screen that has the check.
Two clicks on Send cannot take the same invoice number.
The counter is advanced by one atomic insert-on-conflict and the invoice row is locked before its number is read, so the second issuer reuses the first's number instead of burning a new one. FTA numbering stays gapless.
An unbalanced journal entry cannot exist.
Debits equal credits is checked by a deferred constraint trigger at commit time, and a posted entry cannot be edited or deleted — you reverse it. Nothing can be posted into a closed period.
The same collected cash cannot be paid out to an investor twice.
A payout's period is a date range under an exclusion constraint, so two non-void payouts for one investor can never overlap. Voiding a payout frees its period.
One workspace cannot read another's data.
Row-level security is forced on all 138 tenant tables — including for the table owner — and it is default-deny: a query with no workspace context returns zero rows rather than everything.
An API key cannot do more than the role it was minted against.
The key resolves to a real role, and the same 943 server-side permission checks the app uses then apply. There is no per-endpoint allowlist to drift: narrow the role and every key holding it narrows immediately.
The AI cannot quote a price that isn't yours.
Every monetary figure in a draft reply is matched against the fleet data it was given. On a mismatch the reply is regenerated once, and if it invents again the reply is discarded and a human takes the conversation.
A month that has already been invoiced cannot be billed again.
Rescheduling a long-term plan replaces only the months still pending and skips the billed ones. The guard exists because a production booking once billed June twice.
One connected system — no re-typing, no revenue leaks
- 1Enquiry
- 2Quote
- 3Booking
- 4Handover
- 5Return
- 6Invoice
- 7Payout
Follow one booking
The enquiry arrives
A WhatsApp message lands in one shared inbox — your team sees it instantly, the customer's history attached. Nothing waits in someone's personal phone.
A quote in seconds
Live availability and the pricing engine build an accurate, dated quote — rate, add-ons and 5% VAT — without leaving the chat. Minutes, not a tab-hunt.
Keys, captured
At handover the driver records a walkaround video, photos and a signature, and taps the car diagram to log any damage — priced from your catalogue.
The invoice writes itself
Rental, excess km, Salik, fines and the deposit all land on one VAT invoice. Nothing slips through; nothing gets re-typed.
Owners get paid
Each vehicle's P&L rolls up into the investor payout. The thread that began with a WhatsApp ends as money in the bank — automatically.
AI agents
Two AI agents. Switched on, on your terms.
Your team runs the core — the inbox, bookings, contracts and money. Turn the agents on when you're ready to amplify, not replace: one sells across every channel, the other answers anything from your own data.
AI Sales Agent
Closes across every channel.
Replies in seconds on WhatsApp, Telegram, email and web-chat, quotes from your live fleet — and is stopped by code from quoting a price that isn't yours.
- Works WhatsApp, Telegram, email & web-chat
- Qualifies & scores leads, reads licence / Emirates ID (OCR) to pre-fill
- Quotes from your live fleet — never invents a price
- Drafts bookings + payment links, follows up, hands off to a human
Internal AI Assistant
Ask your business anything.
Your staff ask anything — answered only from your own data, no guessing. It confirms before any write, inside authority tiers you control.
- Staff ask anything, answered only from your data
- Confirm-before-write — nothing changes without your sign-off
- Three authority tiers: read-only → limited write → full-write
- Bring your own model, or use ours
Use our model, or bring your own via API — OpenAI, Claude or Gemini (Enterprise).
Bookings & availability
Never the same car twice.
One live calendar across the whole fleet — every hold, delivery and service in view. Half-open overlap checks make a double-booking impossible.
- Drag a deal to booked → it becomes a reservation
- Half-open overlap guard prevents clashes
- Utilisation per vehicle, at a glance
One system, the whole operation
Everything a rental business runs on — in one place.
Quote before they cool off
Live availability + rules-based pricing turn an enquiry into a dated quote in seconds.
Disputes you can win
Walkaround video, photos and a signed condition report attached to every booking.
Bilingual by default
Every contract, invoice and message in English and Arabic — RTL-correct.
Every dirham, on the invoice
Salik, fines, excess km and deposits captured automatically with 5% VAT.
Roles for the whole team
Owner, ops, sales, finance, drivers and investors — each see exactly their slice.
Multi-branch ready
Several legal entities and TRNs, consolidated — without the system changing shape.
Bilingual contracts
Two languages. One contract.
The rental agreement exists in English and Arabic at once — same clauses, same signatures, right-to-left where it should be. Signed on a tablet or by link, the PDF delivered automatically.
- Full EN / عربي, RTL-correct
- OTP e-signature, in person or remote
- Card & ID numbers masked in the printed copy
Explore every module
Eight connected modules. One login.
What changes
One connected system — and the gaps close themselves.
When every step feeds the next, the leaks disappear, the re-typing stops, and the business finally runs ahead of you instead of behind.
Nothing leaks
Every dirham — rental, add-on, excess km, Salik, fines, deposit — lands on a 5% VAT invoice automatically. The money you were losing was never small; now it's simply captured.
Nobody re-types
Lead → quote → booking → contract → handover → invoice → payout. One record, entered once, carried the whole way down. Your team stops firefighting and starts renting cars.
You can finally scale
Five cars or five hundred, one branch or several legal entities with their own TRNs — the system doesn't change shape as you grow. The chaos doesn't come back.
Other systems digitise your back office. Carfleet runs the whole business — and answers your WhatsApp.
From 5 cars to 500
Run the whole rental business on one system.
Luxury exotics or everyday economy, a side hustle or a multi-branch fleet — Carfleet scales to it, bilingual and UAE-native, with nothing leaking in between.