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.
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.