CHARGEBACKS

Chargeback reason codes that hit subscription businesses most

The Visa and Mastercard reason codes subscriptions see most: fraud, cancelled recurring, not received, credit not processed, and the evidence that fits each.

Published 6 min read

Every chargeback arrives with a reason code. It is the card network’s label for what the cardholder claims, and it decides which evidence the issuer will look at. Answer a “cancelled recurring” dispute with fraud evidence, or the other way round, and you lose a case you could have won.

Subscription businesses see a small set of codes again and again. This guide lists them, explains what each one means for recurring billing, and says what evidence fits. It relies on Visa’s Dispute Management Guidelines for Merchants, the Visa Core Rules, Stripe’s dispute categories and reason codes pages, Braintree’s chargeback reason codes and Adyen’s dispute reason codes (all accessed November 2026). Rules change; the version in force on the transaction date is the one that applies.

How reason codes are organized

Visa groups its codes into four categories: 10 Fraud, 11 Authorization, 12 Processing errors and 13 Consumer disputes. Mastercard uses four-digit numbers (4837, 4841 and so on). Processors simplify both into their own categories. Stripe, for example, maps them to a reason field with values like fraudulent, subscription_canceled and product_not_received.

One practical note from Braintree: its systems do not store decimals, so Visa 10.4 appears as 1040. Check how your processor formats codes before building reports on them.

The codes that matter most for subscriptions

Cardholder’s claim Visa Mastercard Stripe reason
“I did not make this payment” (card absent) 10.4 4837 fraudulent
“I don’t recognize this charge” 10.4 in most cases 4863 unrecognized or fraudulent
“I cancelled, but was charged again” 13.2 4841 subscription_canceled
“I never received the service” 13.1 4855 product_not_received
“It was not as described” 13.3 4853 product_unacceptable
“I was promised a refund” 13.6 4860 credit_not_processed
“I was charged twice” 12.6 4834 duplicate

Amex uses its own codes; the one subscription businesses meet most is C28, cancelled recurring billing, which Stripe and Braintree both map to the cancelled-subscription category.

The rest of this article goes through the first four, which make up the bulk of subscription cases.

Fraud: Visa 10.4, Mastercard 4837 and 4863

What the cardholder claims

That they did not authorize or take part in the payment. Visa’s guidelines describe 10.4 as a card-absent transaction the cardholder says they did not authorize. Mastercard separates “no cardholder authorization” (4837) from “cardholder does not recognize” (4863).

Why subscriptions get them

Many are not real fraud. A renewal the customer forgot, a descriptor they did not recognize, a family member using the card: all of these get reported as fraud because that is the first option the bank offers. See friendly fraud in subscriptions.

Evidence that fits

  • Prior undisputed payments on the same card, by the same customer account. For Visa 10.4, this may qualify for Compelling Evidence 3.0, which requires at least two prior undisputed transactions roughly 120 to 365 days old with matching identifiers such as IP address or device ID.
  • Usage around the billing date: logins, IP addresses, devices, key actions.
  • Authentication: if the payment went through 3D Secure, the liability may have shifted to the issuer. Stripe adds the authentication data to the evidence for you.
  • Communication from the cardholder that shows they know the service.

When to accept

If the account was created and paid in one go, never used, and several similar accounts appeared at the same time, it is probably real fraud. Accept, cancel the subscription and block the pattern.

Cancelled recurring: Visa 13.2, Mastercard 4841

What the cardholder claims

That they withdrew permission to be charged, or that the merchant was told the account was closed, and a recurring charge happened anyway.

Why it matters so much

This code is the purest subscription dispute. It is about your cancel process, not about fraud. Visa’s guidelines state the merchant remedy plainly: if the cardholder withdrew permission and you did not issue a credit, accept the dispute.

For disputes processed on or after 19 October 2024, Visa’s guidelines also allow a remedy when the cardholder kept using the service: you can provide proof that the cardholder used the service after the date they withdrew permission and before the dispute processing date. Other remedies are proof that you already issued a credit, or a written withdrawal of the dispute from the cardholder.

Visa’s free trial policy adds a nuance: if the claim is that the cardholder never agreed to a subscription at all (for example, after a trial they did not understand), the dispute may fall under 13.5 Misrepresentation rather than 13.2.

Evidence that fits

  • The cancellation record with exact timestamps, or proof there was no cancellation request.
  • The cancellation policy shown to the customer at signup, and proof they accepted it.
  • Usage after the claimed cancellation date.
  • Any refund or credit already issued.

The real fix

If you lose 13.2 cases, the cancel path is probably hard to find or not honored. A visible cancel button and an immediate confirmation email remove most of them. Mastercard’s recurring billing standards require an online cancellation method for subscriptions. See cancel flow best practices.

Not received: Visa 13.1, Mastercard 4855

What the cardholder claims

That they paid for a service and did not get it.

For digital subscriptions

Delivery is access. Stripe’s reason code page points to login records, usage timestamps and your terms. Show that the account was provisioned and available for the billed period, and ideally that it was used.

Watch for a specific failure: an account that was charged while access was blocked, for example after a failed payment put the account in a restricted state. If access really was cut off, the cardholder is right.

Credit not processed: Visa 13.6, Mastercard 4860

What the cardholder claims

That you promised a refund, or accepted a cancellation with a refund, and the money never arrived.

Evidence that fits

  • The refund record with date and amount, if you did refund.
  • Your refund policy as shown at purchase, if the customer was not entitled to one.
  • Support conversations where the refund was discussed.

Many of these come from refunds that take a few days to appear on a statement. A clear refund confirmation email with the expected timeline prevents them.

Duplicate processing: Visa 12.6, Mastercard 4834

For subscriptions, these usually come from a retry that succeeded twice, a plan change that charged twice in one period, or two subscriptions on the same account. Check your logs: if both charges are real (for example two seats, or a prorated upgrade), show the invoices. If one is a mistake, refund it.

Using reason codes to prevent disputes

Your reason code mix is a map of what to fix:

Most common code Likely cause First fix
Fraud (10.4, 4837, 4863) on long-time customers Unrecognized descriptor, forgotten renewal Descriptor, renewal reminders
Fraud on new accounts Real fraud or card testing Fraud rules, 3D Secure
Cancelled recurring (13.2, 4841) Cancel process hidden or not honored Visible cancel, confirmation email
Credit not processed (13.6, 4860) Refunds slow or unclear Refund confirmation with timeline
Not received (13.1, 4855) Access issues, onboarding failures Check provisioning

Track codes monthly. A change in the mix after a product change usually tells you which change caused it. For the full defense process, see the chargeback evidence checklist for SaaS.

Doing this with NoChurn

NoChurn reads each Stripe and Braintree dispute with its reason and deadline, and gathers the evidence that fits it automatically: cancel flow answers with timestamps, emails sent, usage you send by API and help desk conversations (read only). It drafts a reply with AI, and nothing is sent until a person on your team has reviewed it. Disputes on other providers are shown read only. See chargebacks.

PROMPT

Read https://www.nochurn.sh/llms.txt,
then follow https://www.nochurn.sh/docs/quickstart/
to add NoChurn to this app. Use a test key
(nc_test_…) until I say we go live.

Stop leaking revenue.

  • Free until $300 MRR
  • No card needed
  • Live in 10 minutes
  • Never a cut of what we recover