SaaS Charge You Didn’t Authorize? A B2B Buyer’s Guide to Disputing Subscription Billing

Most B2B buyers have been there: a line item on the company card from a SaaS vendor you thought you cancelled months ago. Or the subscription that “upgraded” itself to a higher tier. Or the trial that flipped to a paid plan because the cancel flow quietly required two clicks instead of one.

Subscription billing disputes aren’t a rare edge case — they’re a structural side effect of how SaaS pricing works. Auto-renewal is the default. Cancellation is often intentionally friction-heavy. And vendors know that chasing a $79/mo charge isn’t worth most buyers’ time.

Here’s the playbook for when it is worth your time.

Why SaaS billing disputes happen in the first place

Before you start a dispute, understand what likely went wrong. The pattern is almost always one of these:

  • Cancellation didn’t process. You clicked “cancel,” but the flow required a confirmation email you never got — or a customer-success call you never booked. Your subscription stayed active.
  • Auto-renewal on an annual plan. The tool renewed for another year on the same date you signed up, often with only a 30-day window to opt out.
  • Seat-based creep. Someone on your team added three more seats through the admin UI; the next invoice jumped $200 without any notice.
  • Trial-to-paid traps. The free trial required a card, converted automatically, and the confirmation email landed in a spam folder nobody checks.
  • Price hikes mid-contract. The vendor raised prices and you didn’t notice the email notification buried in a billing newsletter.
  • Unrecognized descriptor. The charge shows up on the statement as something cryptic like APPSUMO*XYZ789, and you don’t immediately connect it to any tool you actively use.

Each of these has a different resolution path. Knowing which one you’re dealing with determines whether you can resolve it with a polite support email or whether you need to escalate to your card issuer.

Step 1: Document before you contact anyone

The moment you spot a suspect charge, stop and collect the paper trail. You’ll need it at every step that follows.

  • The full statement line. Screenshot it with the date, amount, and descriptor exactly as it appears.
  • Your cancellation proof. If you cancelled, find the confirmation email, the ticket number, the in-app toast message, anything timestamped.
  • The original agreement. The signup email, the pricing page at the time, and any terms you agreed to.
  • Usage logs. Have you actually used the tool in the billing period? If not, that’s evidence of a dormant subscription — useful later.

If you can’t find a cancellation confirmation, that’s a critical data point — it usually means the cancellation didn’t complete, and the vendor is billing in good faith (even if their flow was misleading). You’re now in a negotiation, not a fraud case.

Step 2: Contact the vendor directly — but do it right

About 60% of SaaS billing disputes resolve at this step if you approach it properly. The key is being specific, unemotional, and asking for a concrete outcome.

A template that works:

“Hi team, I’m writing about a charge of [amount] on [date] with descriptor [descriptor]. I cancelled my subscription on [date] — see confirmation [attach or reference]. I’m requesting a full refund of [amount] and confirmation that no further charges will be processed. If there’s any issue processing this, please let me know within 5 business days.”

Three things matter here: a clear ask (full refund), a deadline (5 business days is reasonable), and a paper trail (email, not live chat). Skip the outrage. Vendors respond faster to buyers who sound like they’re on step one of a longer escalation path.

If the vendor responds with a partial credit offer, decide whether to accept. Sometimes a prorated refund plus service credit is worth more than a fight. Sometimes it’s a delaying tactic. Your call.

Step 3: If the vendor stonewalls, escalate to your card issuer

Roughly two weeks of silence — or an outright refusal to refund a clearly disputable charge — is your signal to escalate. You have two paths:

  1. Your card issuer’s dispute form. Every major issuer (Chase, Amex, Capital One, Revolut, Wise) has an online dispute process. Amex is famously buyer-friendly; Chase is procedural but fair.
  2. A chargeback through the payment network. This is the Visa/Mastercard formal process and has specific reason codes — “Services not provided as described,” “Canceled recurring transaction,” “Credit not processed” — that map to common SaaS disputes.

If you’re not sure which reason code applies to your situation, or you want a step-by-step recovery plan tailored to the specific charge descriptor you’re seeing, a tool like Did I Buy It? will match your case to the right dispute category and generate the exact language to use. It’s especially useful when the descriptor on your statement doesn’t obviously tell you which tool to chase.

Step 4: Understand the chargeback timeline

Once you file a chargeback, expect:

  • Days 1–3: Your bank issues a provisional credit for the disputed amount. The money is back in your account, but the dispute is still open.
  • Days 3–30: Your bank forwards the dispute to the vendor’s bank (the “acquirer”). The vendor has the chance to respond with evidence — usage logs, proof of service, your acceptance of terms.
  • Days 30–60: The acquirer either accepts the dispute (you win, credit is permanent) or pushes back with “representment” — arguing their side. You’ll be asked for more evidence.
  • Days 60–120: Final ruling from the card network. Most disputes resolve by day 45 in the buyer’s favor when there’s clear cancellation evidence.

Don’t delete the disputed charge from your records until the timeline is fully closed. If you lose the dispute and the vendor reverses the chargeback, the amount comes back on your statement.

Red flags to catch before signing

The easiest dispute is the one you never have to file. A few things worth checking on any new SaaS contract:

  • Can you cancel from inside the product, or do you have to email support?
  • Is auto-renewal on by default? Is there a notice period before it triggers?
  • What happens to seats added mid-cycle? Are they prorated or full-billed?
  • Does the descriptor on the statement match the vendor name, or is it a parent company / payment processor name you won’t recognize three months from now?
  • Is annual billing discounted because they’re locking you in, or because they’re actually passing savings through?

A 60-second check of these before you enter a card saves hours later.

When to bring in outside help

For most SaaS disputes under $500, your own time and a good template is the right tool. For larger charges, unresponsive vendors, or cases where you’re not sure which chargeback reason code fits, a specialized tool can cut weeks off the process.

Did I Buy It? analyzes the specific charge, the vendor’s typical dispute patterns, and your available evidence — then gives you a step-by-step recovery plan with the exact dispute language, reason codes, and escalation paths. They publish stats of 83% success rate across 284,000+ cases analyzed; for a B2B buyer with a $500-$5,000 disputed subscription charge, walking through their case intake flow takes about five minutes and produces a ready-to-send dispute package.

The bottom line

SaaS billing disputes aren’t about being wronged — they’re about execution. The buyers who win them document early, stay unemotional, ask for specific outcomes, and escalate on a predictable timeline. The ones who lose them get emotional, wait too long, and approach vendors without evidence.

If you’re sitting on an unauthorized charge right now, the playbook is the same regardless of the amount: document, contact the vendor with a specific ask, give them 5 business days, and escalate to your card issuer if they stall. That’s the whole thing.

And when the charge is unfamiliar or the vendor is genuinely hostile, don’t burn hours re-researching dispute reason codes from scratch. Let a tool like Did I Buy It? do the mapping for you.