“I Cancelled — So Why Did I Get Charged?” How to Fix AI Subscription Auto-Renewals & Duplicate Charges (10-Step Guide)

How to Fix AI Subscription Auto-Renewals & Duplicate Charges (ChatGPT · Gemini · Claude · Midjourney · Perplexity · Notion AI) — 10-Step Guide

This guide isn’t just for ChatGPT Plus. The same logic applies to many global subscriptions like Midjourney, Perplexity, Notion AI, and other overseas SaaS tools.

You were sure you cancelled… and then the next month’s charge hits anyway.
Or you see two charges in the same billing period.

The two most common “panic moves” make things worse:

  • Paying again because premium didn’t unlock → that can create a real duplicate charge

  • Calling your bank first for a forced reversal → can trigger account restrictions or even bans

This isn’t a “guaranteed refund” trick. It’s a 10-minute, high-win-rate flow: confirm where you were billed (web vs store), then use the best route.

👉 If the issue started as payment failures / card declined and you retried multiple times, check this first:
[Payment Failed / Card Declined — 10 Checks Before Switching Cards]


0) 30-second split: Web billing vs App Store billing

Everything depends on this.

  • Subscribed inside an iPhone/Android app → Apple App Store / Google Play

  • Entered your card in a browser → Web billing (often Stripe or the vendor)

Fast tells

  • Statement shows APPLE.COM/BILL or GOOGLE* → store billing

  • Statement shows OpenAI / Anthropic / Stripe / Google AI → web billing

✅ If you don’t confirm this first, you’ll waste hours contacting the wrong team.


1) “Cancelled” and “Deleted” are not the same thing

  • Deleting the app ≠ subscription cancelled

  • Logging out ≠ subscription cancelled

  • Changing devices ≠ subscription cancelled

Only one thing stops billing: the subscription must show Cancelled in the billing platform.


2) Confirm the cancellation using the status wording

Look for:

  • Cancelled / Canceled

  • Expires on (date)

  • Renews on (date) ❌ (still active)

If you see Renews on, it’s not over.


3) Duplicate charges usually come from these 3 patterns

(1) Two accounts

Google login vs email login, work vs personal…
Two accounts = two subscriptions.

✅ Confirm the exact email currently signed in.

(2) Two billing rails

You subscribed once via Web and once via App Store / Play.

(3) The classic trap: “Paid but premium didn’t unlock → paid again”

If you’re billed through Apple/Google, try this first:

Restore Purchase (before paying again)

  • Open the app → Settings / Account

  • Tap Restore Purchase / Restore Subscription

  • Wait for it to resync the receipt

This fixes “still on Free plan” surprisingly often—and prevents duplicates.


4) Web refunds: Vendor first → Bank last

If you paid on the web, the correct order is:

  1. Request a refund via the vendor’s billing/invoice page

  2. If denied/ignored, escalate with proper evidence

  3. Only then consider a bank dispute

⚠️ Reality check: refunds are often non-refundable by default

Many platforms won’t refund “I forgot to cancel / didn’t use it.”
Your odds go up when it’s:

  • Duplicate charge

  • Service outage / technical billing error

  • Paid but plan not activated due to system issue

So don’t lead with “I forgot.” Lead with “billing error / duplicate charge / plan not activated.”


5) App Store / Google Play: the store often controls the refund

If you subscribed in-app, the vendor may not have direct refund control.

Apple (fastest)

Use Apple’s refund portal:

https://reportaproblem.apple.com/

Google Play (fastest) + the 48-hour golden rule

The “48-Hour Golden Rule” for Google Play:
If it’s been less than 48 hours since an app or in-app purchase, you can request a refund through Google Play directly. It’s often automated and can be approved instantly.
If it’s more than 48 hours, Google often pushes you to contact the developer (OpenAI/Anthropic/etc.). Speed matters.

(Play Store → Profile → Payments & subscriptions → Budget & history → select the charge → Request refund / Report a problem)

👉 If the billing page keeps loading forever or the checkout screen repeats, your browser may be the real bottleneck. Try this quick checklist:  [Chrome Suddenly Slow? 5 Fixes Before Clearing Cache]


6) “I cancelled but got charged anyway” can be timing

Very common:

  • You cancelled on the renewal day / too close to it

  • The renewal was already queued

  • Time zone cutoffs (often UTC)

Rule: cancel 24–48 hours before renewal.


7) Before contacting support: collect the “Evidence Trio”

This is what gets faster decisions:

  1. Charge time (date + time + timezone)

  2. Statement details (merchant name + amount + currency)

  3. Invoice / receipt ID (vendor invoice or store order ID)

💡 Can’t find the email receipt? Search your inbox for:

  • Web billing: “Stripe”, “OpenAI”, “Anthropic”, “Invoice”

  • Stores: “Google Play Order Receipt”, “Apple Receipt”
    Also check Spam/Junk.

⚠️ Is the charge “Pending” or “Posted”?
If your bank statement says Pending / Processing, the money hasn’t actually left yet. It may be a temporary hold (often a small test like $1) that disappears automatically.
You can’t “refund” a pending charge—you usually just wait for it to drop.


8) Copy-paste templates that get real replies

Vendor support (web billing)

  • Charge time: YYYY-MM-DD HH:MM (timezone)

  • Amount/currency: $XX / USD

  • Payment method: Visa/Master (last 4 digits only)

  • Invoice/receipt ID: (ID)

  • Issue: Duplicate charge / Charged after cancellation / Plan not activated

  • Request: Refund eligibility + billing investigation

Bank/card issuer (NOT chargeback yet)

  • “I suspect a billing error / duplicate charge from an overseas merchant.”

  • Provide time, merchant, amount

  • Ask if it’s pending vs posted, and request the decline/processing details.


9) 🚫 Chargeback is the nuclear button (and can get you banned)

👉 Using a VPN or public Wi-Fi can also trigger risk checks and billing weirdness. If you notice login/payment issues only with VPN on, fix the network side first:  [VPN Breaks Internet or Login — Deep 10-Step Troubleshooting]

Chargeback isn’t “customer service.” It’s a forced reversal.

Platforms may respond with:

  • account restriction

  • service suspension

  • potential permanent ban

Unless it’s truly fraud/theft, use this order:
Vendor/Store refund → escalation → chargeback last


10) Prevention: choose one billing route

To reduce duplicates:

  • Subscribe via web only, or

  • Subscribe via store only

Mixing both is how duplicates happen.


One-line wrap-up

Refund success isn’t about arguing harder—it’s about identifying the billing route (web vs store), avoiding panic re-purchases, using Restore Purchase first, and submitting clean evidence (including pending vs posted).