# Charged after cancellation: investigate a subscription dispute

[By Evidenz](https://evidenz.dev/)  5 min read

When a customer says they canceled, investigate what they asked to stop, when they asked, and when the change was meant to take effect. A subscription marked active at the time of billing is one record to explain, not a complete answer to the complaint.

## Identify the payment before reading the cancellation log

A customer may have two workspaces, several subscriptions, and one email address. Begin with the disputed charge and trace it to its invoice, subscription, account, and service period. Then locate the cancellation records for that subscription.

This order prevents an easy mistake: finding a cancellation under the right customer and assuming it covers the disputed payment. The customer may have canceled one workspace while the business renewed another. That does not settle whether the charge was justified, but it identifies the question you need to resolve.

Keep the original identifiers in the investigation. Use readable account and plan names in the response, with only the technical references needed to connect the attachments. A reviewer should not have to infer the relationship between unrelated screenshots.

## Separate the request, processing time, and effective date

These dates describe different events:

- **Request received:** when the customer submitted the cancellation or asked support to stop billing.
- **Request processed:** when the business changed its billing records.
- **Effective cancellation:** when the agreed subscription or future renewal should end.

[Stripe supports immediate cancellation, cancellation at the end of a billing period, and custom cancellation dates.](https://docs.stripe.com/billing/subscriptions/cancel) A scheduled end therefore needs to be read alongside the invoice period and the communication sent to the customer. A status label alone loses that distinction.

[Polar makes a similar distinction between cancellation at period end and immediate revocation.](https://polar.sh/docs/features/subscriptions/manage) A scheduled cancellation keeps benefits available through the current period; revocation ends access immediately and does not itself issue a refund. In a Polar investigation, record which operation occurred and its effective time. Continued access after a scheduled cancellation does not, by itself, show that cancellation failed.

Preserve the timezone and the original event timestamp. Search support, the billing portal, and other cancellation channels the business actually offers. An empty result in one channel supports “no request found here”; it does not establish that no request was made anywhere.

## Check what the customer was told would happen

Read the cancellation confirmation, not just the event name. Did it promise that future renewals would stop, access would end immediately, or a particular final payment would still be due? Compare that promise with the agreement presented at purchase and the actual invoice.

[Stripe’s guidance for subscription-canceled disputes calls for the relevant cancellation policy, how it was disclosed, and an explanation of why the disputed payment remained valid.](https://docs.stripe.com/disputes/categories) Those are case-specific evidence requirements. They do not make a policy override an applicable obligation or a later support commitment.

A support message can change the investigation. If an agent said “we have stopped all future billing,” preserve that statement even if the agent changed only one subscription. The difference between the promise and the billing action may be the cause of the dispute.

## A two-subscription example

**Fictional example.** A SaaS business sells a €29 personal plan and a €120 team plan. Both belong to the same billing customer. On September 26, the customer asks support to “close the account and stop all renewals.” The agent cancels the personal plan and replies, “Your account is canceled.” The team plan renews on October 1.

The team subscription’s history shows no cancellation before October 1. That fact is accurate but incomplete. The customer’s request covered the account broadly, and the reply did not disclose a remaining subscription.

Fictional cancellation review: what each record contributes

| Record | What it establishes | What still needs review |
| --- | --- | --- |
| October 1 team invoice | The disputed €120 charge belongs to the team subscription. | Which service period and agreement applied? |
| September 26 support request | The customer asked to stop all renewals. | Was the account scope clear enough to act on? |
| Personal-plan cancellation | One subscription was changed. | Why was the team plan left active? |
| Support confirmation | The customer was told the account was canceled. | Did any later message correct that understanding? |

Do not respond with only the active team-plan screenshot. Reconcile the broader request and confirmation first. The result may be a valid customer complaint that should be accepted or otherwise resolved through the processor’s available procedure.

Now change the facts: the customer explicitly asked to cancel only the personal plan, the confirmation named that plan, and the team agreement remained unchanged. The investigation is different. Preserve the actual wording instead of substituting the broader story from the first example.

## Record a finding that another reviewer can check

A short internal finding should contain five things:

1. The disputed payment, subscription, and billed service period.
2. The cancellation request and the scope of what the customer asked to stop.
3. The effective date and what the business communicated.
4. The reason the records support accepting, challenging, or further investigating the claim.
5. The owner and next action, including the processor’s exact deadline.

[Shopify identifies incomplete cancellation and cancellation requests not processed correctly as different possible causes of these disputes.](https://help.shopify.com/en/manual/payments/chargebacks/chargeback-process) Treat that distinction as a prompt to inspect your process, not an invitation to assume the customer failed to finish it.

If the case remains ambiguous, name the missing fact. “We have not found the portal confirmation for this workspace” is more useful than “the customer did not cancel.” The first statement can be checked and corrected.

## Prepare the response after the investigation

Use the finding to choose relevant excerpts and explain the sequence. Avoid submitting a complete support archive or unrelated usage history. Activity from an earlier paid period does not answer whether the later renewal should have occurred.

[Check the current case and available response actions in the processor](https://docs.stripe.com/disputes/responding). A draft, a support refund promise, and a submitted dispute response are different states. If a refund or another adjustment is already involved, reconcile it before taking a second financial action.

The [evidence guide](https://evidenz.dev/articles/chargeback-evidence) covers packet selection; the [response workflow](https://evidenz.dev/articles/respond-to-chargebacks) covers final review and submission.

## Carry the cancellation promise into the decision

Evidenz is being built for B2B and B2C SaaS teams that need to put a cancellation promise next to the renewal it was meant to stop. For support and finance, that means an investigation organised around the request, its account scope, the promised effective date, and the actual billing event. That structure helps distinguish an internal handoff failure from a customer cancelling a different subscription. It also gives the response owner the original wording behind the decision. For a business whose cancellation history is spread across systems, this is the benefit of a shared customer timeline: explain why the charge happened and whether it matched the commitment.

## Sources and scope

Sources checked October 2026

Published by Evidenz. Examples are illustrative, not customer results. Check current requirements and the actual case against the linked sources.

- [Stripe: Cancel subscriptions](https://docs.stripe.com/billing/subscriptions/cancel)
- [Stripe: Dispute reason code categories](https://docs.stripe.com/disputes/categories)
- [Shopify: Responding to chargebacks and inquiries](https://help.shopify.com/en/manual/payments/chargebacks/chargeback-process)
- [Stripe: Respond to disputes](https://docs.stripe.com/disputes/responding)
- [Polar: Managing subscriptions](https://polar.sh/docs/features/subscriptions/manage)

Customer context is our starting point.

Evidenz is being built for B2B and B2C SaaS: a shared customer history across subscription billing, accounts, support, and digital product activity. Join the waitlist for early-access news.

[Join the waitlist](https://evidenz.dev/#hero)

## Keep reading

[5 min read

### Trial-to-paid disputes: reconstruct the agreement and the first charge](https://evidenz.dev/articles/trial-to-paid-disputes)[4 min read

### Build a customer activity timeline for dispute reviews](https://evidenz.dev/articles/customer-activity-timeline)[5 min read

### Chargeback evidence for subscription businesses](https://evidenz.dev/articles/chargeback-evidence)

Canonical page: https://evidenz.dev/articles/canceled-subscription-dispute
