'Only 2 seats left': the travel ad rules that carry fines
In 2026 CCPA fined SpiceJet and flagged IndiGo, Zepto and BookMyShow for the same ad tactics small agencies run every day. A checklist to stay clear.
Reykjavík · 23:10Your reel says "Only 2 seats left" on a Bali batch that actually has seven open. Your quote card shows ₹24,999 in bold, with GST and TCS in six-point font underneath. Your booking form has trip insurance pre-ticked, and the decline button reads "No, I'll take the risk." None of that is just aggressive marketing anymore. Each is a named, penalised dark pattern under Indian consumer law, and in 2026 the Central Consumer Protection Authority (CCPA) started fining exactly this kind of copy.
This isn't a lecture about honesty. It's a compliance problem that already landed on a national airline. In July 2026, CCPA fined SpiceJet ₹1 lakh over its booking flow, and in a wider sweep flagged IndiGo, Zepto, BookMyShow, Physics Wallah and four more platforms (BestMediaInfo). If a national carrier got this wrong, so can a five-person agency running its own Instagram ads and WhatsApp quote cards.
This post gives you the rulebook in plain English, the closest precedent for each tactic, and a 60-second checklist for any creative before it posts.
CCPA's 2026 crackdown just made travel ads a compliance problem
CCPA's 2026 enforcement wave named at least nine platforms and disclosed roughly ₹20 lakh in fines for tactics travel agencies use every week: fake urgency, prices that grow after the click, consent boxes ticked before the customer arrives. This reached an airline, and separately, the railway booking platform, not just fintech and quick-commerce.
| Platform | Disclosed fine | Dark pattern |
|---|---|---|
| Zepto | ₹7 lakh | Drip pricing, basket sneaking |
| Physics Wallah | ₹5 lakh | Basket sneaking, forced action |
| Anuj Jindal (coaching platform) | ₹3 lakh | False urgency (fake countdown timer) |
| FirstCry | ₹2 lakh | Drip pricing (GST added late) |
| PharmaEasy | ₹1 lakh | Basket sneaking |
| McAfee | ₹1 lakh | Subscription trap |
| SpiceJet | ₹1 lakh | Trick question, forced action |
| IndiGo | Not disclosed | Confirm shaming |
| BookMyShow | Not disclosed | Basket sneaking |
(Moneycontrol, 6 August 2026). Separately, an August 2026 LocalCircles survey found 70% of IRCTC users reported experiencing "forced action" on the booking site, mapped against six named categories (Business Standard). Coverage clustered mid-to-late July into August: a sustained push, not a one-off order.
What a dark pattern actually means under Indian law
A dark pattern, under Indian law, is a specific, named checkout or advertising tactic that CCPA has identified as deceptive, issued as a formal guideline under the Consumer Protection Act, 2019, and it now carries real fines. The rulebook is the "Guidelines for Prevention and Regulation of Dark Patterns, 2023," issued under Section 18 of that Act (Moneycontrol). Current reporting confirms at least eleven named categories, including false urgency, basket sneaking, confirm shaming, forced action, subscription traps, disguised advertisements, interface interference, bait-and-switch, nagging, drip pricing and trick questions. Three show up constantly in travel marketing:
- False urgency: a scarcity or time-pressure claim that isn't actually true (a "2 seats left" that doesn't match the real booking sheet).
- Drip pricing: a headline price that grows once the customer is already committed to the checkout flow.
- Confirm shaming: an opt-out worded to guilt the customer into staying opted in.
Two more matter at checkout: forced action (bundling an unrelated purchase into a required step) and basket sneaking (adding an item or fee to the cart the customer didn't choose).
"Only 2 seats left": when scarcity crosses into false urgency
A scarcity claim becomes false urgency the moment the number stops matching your actual booking sheet, or the countdown timer keeps resetting on reload. The test: is the figure true and recorded right now, or copy you wrote once and never touched again.
The closest confirmed precedent is a ₹3 lakh CCPA fine against a coaching platform run by Anuj Jindal, for a misleading 24-hour countdown timer that didn't actually expire (Moneycontrol). Not a travel case, but the mechanism is identical to a "batch closing in 6 hours" story that quietly resets every night. The fix costs nothing: pull the number from whatever sheet actually tracks bookings at the moment you post. If you use a countdown, make it real, or drop it.
Careful: "2 seats left" that's been sitting in your Highlights for three weeks isn't urgency copy anymore, it's a false claim you can't currently substantiate if someone screenshots it.
The ₹24,999 Bali that becomes ₹38,000: drip pricing in a quote
Drip pricing is showing an attractive headline price, then revealing taxes, fees or mandatory add-ons only after the customer clicks in, so the number they actually pay is meaningfully higher than the one that got them to click. CCPA fined Zepto ₹7 lakh and FirstCry ₹2 lakh for versions of this: handling charges and GST added at checkout without prior disclosure (Moneycontrol).
In travel, this is the ₹24,999 Instagram price that becomes ₹38,000 once GST, TCS, twin-sharing and a "convenience fee" show up on the quote PDF. Each is legitimate; the problem is they arrived after the customer was emotionally committed. Your tour quotation format is where to fix this: state the all-in figure, or "starting from, + GST and TCS" in the same line and size as the headline number, before anyone books a call.
Example: A Bali package ad says "₹24,999 per person." The quote adds ₹1,300 GST, ₹500 TCS and a ₹1,200 single-occupancy charge, taking the real number to ₹27,999 before flights. Each addition is legitimate. Showing none of it in the ad is the drip-pricing problem.
Confirm-shaming your own client into buying insurance
Confirm shaming is writing the decline option on any opt-in offer so saying no feels like admitting you're being reckless or cheap, instead of a neutral choice. CCPA flagged IndiGo's app for exactly this: its opt-out for an add-on read "No I will take risk." IndiGo has since changed it to "No, I will not add to the trip" (Moneycontrol).
A neutral opt-out on a booking form or WhatsApp confirmation message says "No thanks" or "Skip this," full stop, no line about what could go wrong. If insurance or a donation add-on is worth offering, it's worth offering honestly, with yes and no carrying equal weight on screen.
"Guaranteed visa" and "best price guaranteed": the superlatives that need proof
A superlative claim needs to survive one question: could you produce a document or supplier confirmation backing it if a customer, or a regulator, asked. "Guaranteed visa," "best price guaranteed," "award-winning" and "100% visa success" show up constantly in agency creative, and each is a separate exposure: misleading-advertisement rules in the Consumer Protection Act, 2019, not the dark-patterns guidelines.
The Advertising Standards Council of India's Code is more specific. Its Chapter I, "Honest Representation," requires any claim be "capable of substantiation" on request, treats phrasing like "prices from as low as ₹Y" as impermissible where it's likely to mislead, and bars calling something "free" if the customer bears any cost beyond delivery (ASCI).
Two claims need a specific fix:
- "Guaranteed visa" should say what's actually guaranteed: a correctly filed submission, or money back if the application is refused. Those are very different promises, and "guaranteed" alone implies the second one.
- "Best price guaranteed" needs a named, checkable comparator. "Best price" against what, exactly, is the question a regulator or a competitor will ask.
Careful: No CCPA or ASCI action against a travel agency specifically for "guaranteed visa" or "best price guaranteed" turned up in this research. Treat this as exposure under the general rules, not an enforced precedent. That doesn't make the claim safer, it makes it untested.
The 60-second pre-post checklist
Run this against any ad, reel caption, quote PDF or booking form before it goes live.
THE 60-SECOND PRE-POST DARK-PATTERN CHECKLIST
A. SCARCITY CLAIMS
- Is the seats/slots number pulled from the real booking sheet, right now, not yesterday's count?
- If there's a countdown timer, does it actually expire, or does it reset when the page refreshes?
- Could you screenshot the real inventory count as proof if someone asked?
B. PRICE CLAIMS
- Is the headline number the full all-in price, or is it clearly labelled "starting from" / "+ taxes & TCS extra" in the same line, same font size as the price itself?
- Are GST, TCS, convenience fees and any mandatory add-ons shown before the client clicks "book," not revealed only at final payment?
- Is "twin-sharing" written next to the price, not buried in fine print below it?
C. OPT-OUTS AND CONSENT
- Is every add-on (insurance, donation, loyalty programme, WhatsApp marketing consent) opt-in by default, never pre-ticked?
- Does the decline button say something neutral ("No thanks," "Skip"), not a guilt line ("No, I'll take the risk")?
D. SUPERLATIVE CLAIMS
- Can you back every "guaranteed," "best price," "award-winning," "100% visa success" claim with a document or supplier confirmation if asked?
- If you say "guaranteed visa," have you said whether that means guaranteed submission, or money back on refusal?
- If you say "best price guaranteed," against which named, checkable comparator?
E. FINAL GATE
- Would this creative survive being screenshotted and sent to CCPA's e-Jagriti portal?
- Have you confirmed today's rupee thresholds and section numbers with your CA or lawyer before relying on them in a live claim?
What actually happens if you get caught
The real consequence isn't just the fine, it's the scramble after. SpiceJet's order required a compliance report and an interface fix within 15 days (BestMediaInfo). For a small agency, that means rebuilding a form or rewriting live ad copy on a regulator's clock, not your own. CCPA can also order a specific ad discontinued, separately from any fine. If a client complaint escalates past a direct conversation, how consumer courts actually decide cases against travel agencies is worth reading before that call, not during it.
This moves fast: confirm before you post
Every rupee figure and section reference here is current as of August 2026, drawn from press reporting on CCPA orders, not the primary guideline text. Enforcement priorities and thresholds move. Confirm the current position with your CA or lawyer before relying on any of it in a client-facing claim.
Common questions
What are dark patterns under Indian consumer law?
Specific, named tactics in advertising or checkout design that CCPA has formally identified as deceptive under its "Guidelines for Prevention and Regulation of Dark Patterns, 2023." False urgency, drip pricing, confirm shaming, forced action and basket sneaking are among the confirmed categories, each fined in 2026.
What counts as confirm shaming?
Any decline button worded to make saying no feel careless or risky, instead of neutral. IndiGo's flagged example read "No I will take risk"; the fix was "No, I will not add to the trip." A booking form's insurance or add-on decline should read the same plain way.
When airlines say "2 seats left," is that a dark pattern?
Only if the number isn't true. A real, currently accurate seat count is ordinary scarcity marketing. The confirmed 2026 precedent, a coaching platform's countdown fined ₹3 lakh, involved a timer that never actually expired: the claim, not the tactic, is what gets fined.
The short version
- CCPA fined SpiceJet ₹1 lakh in July 2026 and flagged IndiGo, Zepto, BookMyShow, Physics Wallah and four more platforms in a wider sweep, roughly ₹20 lakh in disclosed fines, under its 2023 dark-patterns guidelines.
- A "seats left" or countdown claim is fine if it's true and pulled from your real booking sheet right now. It becomes false urgency the moment it isn't.
- State the all-in price, or "starting from + GST/TCS," in the same line and size as your headline number. Hidden charges revealed only at checkout is the drip-pricing pattern that's already been fined.
- Every add-on (insurance, donations, WhatsApp consent) should be opt-in by default, with a neutral decline button. Guilt-worded opt-outs are a named, penalised pattern.
- "Guaranteed visa" and "best price guaranteed" need to be backed by a document or a named comparator on request. No confirmed case exists yet against an agency for these specifically, which makes them untested risk, not safe risk.
- Run the 60-second checklist against any ad, quote PDF or booking form before it posts. It costs less time than the caption did.
- Confirm every rupee figure and section reference here with your CA or lawyer. This is a fast-moving enforcement area, not settled law.