Telegraft

Bot type

Quote, document check and deposit before the customer arrives

A Telegram car rental bot quotes availability by dates and category, collects the licence and passport up front, takes a deposit, and confirms the booking. It moves the paperwork off the counter. It does not assess driver risk, and it cannot verify a licence is valid.

Car rental booking bots: price, timeline and limits

Fixed price
$4,600 USD
Delivery
21 calendar days from kickoff
Authorisation holds
Not available through Telegram Payments — the provider places them
File download
20 MB per file
Licence validation
A bot cannot verify a licence is valid or unrevoked
Telegram Stars
Digital goods only — unusable for vehicle rental

As of 2025-10-01, Telegram Bot API 13.4

The problem this solves

The cost centre in short-term vehicle rental is not the booking. It is the twenty minutes at the counter when a customer arrives without an international permit, or with a licence that does not qualify them for the category they booked, or unwilling to accept the deposit hold they were never told about. Every one of those is discoverable before they travel to you.

The second cost centre is the quote itself. Rental pricing depends on dates, category, mileage allowance, insurance excess and season, which makes a phone quote a conversation and a web form an abandoned page. Operators end up quoting a headline daily rate that is not what anyone pays, and then having the real conversation at pickup, which is where the disappointment happens.

Doing both in a chat works because the quote can be assembled incrementally and the document check can be a photograph rather than an appointment. A customer answers four questions, gets a real total including the deposit hold, uploads two documents, and pays. Whatever is wrong is wrong before they get in a taxi to your office, which is the entire point.

How the build runs

  1. Four questions produce a real number

    Dates, category, mileage expectation, excess preference. The total quoted includes the deposit hold, because that is the figure that causes arguments when it appears for the first time at the counter.

    inline-keyboard
  2. Availability is checked against the actual fleet

    Not against a category count that assumes every vehicle returns on time. Overbooking a category is recoverable; overbooking a specific vehicle a customer was promised is not.

    webhook
  3. Documents are collected before payment, not after

    Licence and passport as photographs, checked for legibility and for the fields your process needs. A customer who cannot produce a qualifying licence finds out now rather than at the counter.

    file-transfer
  4. The deposit and rental are taken through a real provider

    Telegram Payments routes to a provider you hold a merchant account with. Which providers a UAE entity can use is settled during scoping, because the answer differs by licence and category.

    payments-api
  5. Confirmation carries the terms in full

    Mileage cap, excess, fuel policy, late return charge. Stated once, in writing, in the chat the customer will still have at pickup. Disputes at return are almost always about something nobody wrote down.

    commands
  6. Extension happens in the same conversation

    A reminder before return offers extension with the price attached. An extension a customer can accept in one tap is revenue; one that requires a phone call during working hours is a late return.

    inline-keyboard

What Telegram will and will not let you do

Telegram Payments hands off to a payment provider; it does not hold funds or place authorisation holds itself.

Whether you can place a deposit hold rather than a charge depends entirely on your provider and merchant category. This is confirmed before the build, because a rental flow without a hold is a different product.

A bot downloads files up to 20 MB.

Licence and passport photographs from a phone are well inside this. A customer sending a multi-page scanned PDF from a laptop can exceed it, and the bot says so rather than failing quietly.

Telegram compresses images sent as photos rather than as documents.

A compressed licence photograph can lose the detail your process depends on. Documents are requested as files where legibility is legally relevant.

A bot cannot verify that a driving licence is valid or unrevoked.

It confirms a document was supplied and is readable. Eligibility remains a human decision at the counter, and a process that assumes otherwise has moved liability without moving capability.

Telegram Stars cannot be used for physical goods or services.

Vehicle rental is settled through a conventional payment provider. Any proposal routing rental payments through Stars is a policy breach that puts the bot at risk.

When not to build this

  • You rent by the month to corporate accounts. The counter friction this removes barely exists, and contract terms are negotiated rather than quoted.
  • Your fleet system cannot expose availability. Quoting against a stale spreadsheet produces confirmed bookings for vehicles that are out, which is worse than a slow phone quote.
  • Your deposit process depends on physically inspecting a card. A chat flow cannot replicate that, and pretending it can shifts risk onto the counter staff.
  • You have fewer than about fifteen vehicles. The booking volume does not justify the build and a WhatsApp thread with a good template will cover it.

What it runs on

ComponentVersionWhy
grammY1.45Bot framework, with the quote flow held as server-side conversation state.
Cloudflare WorkerscurrentRuntime, including the pricing engine.
Cloudflare D1currentBookings, fleet availability, document state and deposit records.
Cloudflare R2currentLicence and passport images under your retention policy.
TypeScript5.9Strict mode. Rental pricing has enough dimensions to justify it on its own.

Questions people ask before committing

Can it place a deposit hold rather than charging the card?

That depends on your payment provider and merchant category, not on Telegram. It is confirmed during scoping because a rental flow that charges instead of holding is a materially different customer experience and a different refund burden.

What happens if the customer's licence does not qualify them?

They find out before paying and before travelling to you. The bot checks the document is present and readable against the fields your process needs; the eligibility decision itself stays with a person, because it is a judgement.

Does it stop customers arguing about the deposit at the counter?

It removes the most common cause, which is the deposit being mentioned for the first time at pickup. The figure appears in the quote, in the confirmation, and in the reminder. Disputes fall; they do not disappear.

Can it handle extensions?

Yes, and it is where the revenue is. A reminder before the return time offers an extension with the price attached and takes payment in the same thread, which converts far better than expecting a customer to call during office hours.

Does it connect to our fleet management system?

Where the system exposes availability, yes, and that is strongly preferable. Quoting against data that does not reflect which vehicles are actually out produces confirmed bookings you cannot honour.

How long are customer documents kept?

Under whatever retention policy you set, in your own storage rather than in Telegram. The customer keeps their own copy in their chat history and that cannot be remotely deleted, which your privacy notice needs to state plainly.