Skip to content

Security & engineering · · 7 min read · Vinny Bonfim

Seven security questions to ask your limo software vendor

Your dispatch software holds client addresses, flight details and saved cards. Here are seven practical security questions to ask any vendor, and how LimoGrid answers each.

To judge limo software security, ask any vendor seven things: how your data is kept separate from other companies, where card data goes, whether every employee has their own login, how drivers and affiliates get in, how the vendor finds flaws in its own code, how software reaches production, and how you get your data out. Good answers are specific. Vague ones are an answer too.

Your dispatch system holds home addresses, flight numbers, the names of executives and their assistants, and saved cards for your best corporate accounts. For a limo company, that is the client list. A breach is not an IT problem; it is a phone call to your biggest account.

Below are the questions, what to listen for, and what LimoGrid does for each. You do not need a technical background to ask them. You only need to notice when an answer stays general.

How is my data kept separate from other limo companies?

Cloud dispatch software serves many operators from the same system. The question is what stops one company's user from seeing another company's reservations, whether by accident or on purpose.

What to listen for: a check on every request, not only at login. "You can only see your own data once you're logged in" is not the same as "every request is checked against the company that owns the record."

What LimoGrid does: LimoGrid has a tenant isolation layer. Every request is tied to a user session (a JWT) and checked against the company that owns the data. Reservations, accounts, cards and payments each have ownership checks. Websocket connections, which carry live updates, are checked against the company as well, so live connections follow the same rule as every other request.

Where does card data go, and who is the processor?

This one decides how much card risk sits with you.

What to listen for: whether card numbers ever pass through the vendor's servers or yours, who stores saved cards, and what stops a retried charge from billing twice.

What LimoGrid does: LimoGrid is not the processor. You connect your own merchant account: Authorize.Net, Stripe, Square or Midwest. With Authorize.Net, cards are entered through the Accept.js hosted card form, so card data never touches your servers. Saved cards are stored as Authorize.Net customer profiles, in the processor's vault. You can require an AVS billing-address check that uses the billing account's ZIP. Payments and invoice charges carry idempotency keys, so if a request is retried after a network hiccup, the client is charged once. More on this model in limo company credit card processing.

The same care applies when the passenger pays remotely. PayLink sends a link with the trip already on the page; the passenger enters the card there, not in an email reply to your dispatcher. Our post on pay links for limo companies covers the workflow.

Does every employee get their own login, and can I cut someone off?

A common weak spot at a limo company is not a hacker. It is a shared dispatch login that a driver-turned-dispatcher still knows six months after leaving.

What to listen for: individual logins with no user cap that pushes people to share, sessions that expire, and a way to end every active session at once.

What LimoGrid does: the Backoffice uses per-user sessions with no shared tokens. Pro and Pro Plus include unlimited users, so there is no reason to share. Sessions have a sliding timeout, so an idle screen at the front desk logs itself out, and a forced expiry, so no session lives forever. Sessions can also be revoked globally when you need to be sure everyone signs in again.

How do drivers, affiliates and passengers get in?

Drivers use phones that get lost. Affiliate drivers are not your employees. Passengers book from anywhere. Each needs access to a slice of data, and nothing more.

What to listen for: one-time codes rather than shared passwords for drivers, a way to send a single job without creating a permanent account, and separate tokens for public booking.

What LimoGrid does:

  • Drivers sign in to the driver app with a one-time code (OTP), backed by one-time-code proofs.
  • DriverLink sends a single job to any driver as a secure link, so a one-off or affiliate driver sees that job without a login. Every link generated and sent is kept in a history.
  • The booking widget uses per-company booking tokens, and passengers get their own passenger session tokens.
  • Geofence and attachment gates can require, for example, an arrival confirmation or a required photo before a driver can change a trip's status. That is an operations control, but it also means the trip record reflects what actually happened.

How do you find security flaws in your own code?

Every vendor has bugs. The question is whether they look for them systematically.

What to listen for: automated code scanning and a routine for updating third-party libraries. Most modern software is built on open-source packages, and known vulnerabilities in those packages are published. A vendor that never updates is running with published holes.

What LimoGrid does: our repositories run CodeQL code scanning, and Dependabot opens dependency updates weekly. Scanning catches common flaws in our own code; weekly updates keep the libraries under it current.

How does software get from a developer to production?

A vendor that deploys by copying files onto a server by hand will eventually deploy the wrong thing.

What to listen for: automated builds and deploys, and separation between the parts of the system that face the internet and the parts that do heavy background work.

What LimoGrid does: LimoGrid runs on AWS in Docker containers, with deploys through CodePipeline and CodeBuild. Files are stored in S3 behind a CDN. Email and PDF rendering run in a separate worker, isolated from the API, with an S3 outbox and a dedicated mail relay, so a problem with an invoice PDF or an email server does not take down booking. Background jobs run on a scheduler instead of legacy cron jobs, and driver offers run on SQS queues. The driver app ships updates over the air, so a fix reaches drivers without waiting for an app store review.

Can I get my data out if I leave?

Security includes not being held hostage. If a vendor controls your client list and makes it hard to leave, that is a business risk even if nothing is ever breached.

What to listen for: what the export contains, the format, what it costs, and whether there is a contract that keeps you in.

What LimoGrid does: data export on leaving is free, and plans are month to month with no contract. Within the product, the trip time log records what happened when on each reservation, which helps when a client disputes a no-show or a wait-time charge. Invoice details can be exported from billing at any time.

Your security checklist at a glance

QuestionGood answer includesLimoGrid
Data separationPer-request ownership checksTenant isolation layer
Card dataHosted card form, processor vaultAccept.js, customer profiles
LoginsPer-user, revocable sessionsUnlimited users, global revoke
Drivers and affiliatesOne-time codes, scoped linksOTP, DriverLink
CodeScanning, dependency updatesCodeQL, weekly Dependabot
DeploysAutomated pipeline, isolated workersCodePipeline, email worker
LeavingFree export, no contractFree export, month to month

Your own habits matter as much as the vendor's. Give every employee their own login, remove people the day they leave, never take card numbers by email, and turn on AVS if chargebacks are a problem. For the broader evaluation beyond security, see our buyer's guide to limo dispatch software.

Frequently asked questions

What are common security weak spots at a limo company?

Shared logins, and card numbers taken by email or phone and written down. Individual accounts and a hosted payment form or payment link address both.

Does LimoGrid store credit card numbers?

With Authorize.Net, card entry happens on the Accept.js hosted form and saved cards are kept as customer profiles in Authorize.Net's vault. LimoGrid is not the processor; you connect your own merchant account.

Can one limo company see another company's data on LimoGrid?

Every request is tied to a user session and checked against the company that owns the data, with ownership checks on reservations, accounts, cards and payments, and company checks on live websocket connections.

What happens to a driver's access when they leave?

Drivers sign in with one-time codes rather than shared passwords, and one-off or affiliate jobs go out as DriverLinks rather than accounts, so there is less standing access to remove. In the Backoffice, sessions can be revoked globally.

If you want to put these seven questions to us directly, book a demo and ask them one by one. Then compare our answers with every other vendor on your list.

About the author

Vinny Bonfim — Chief Technology Officer, LimoGrid

Fifteen years in software and five running black car operations — the rare combination where the person designing the dispatch screen has also worked a Friday night on it.

More about the team

See it on your own jobs.

Thirty minutes, your reservations, your rates. If it does not fit how you run, we will tell you so rather than sell you a plan you will cancel in March.