TL;DR
- A shortened descriptor is the 2 to 10 character prefix Stripe puts at the start of every card charge.
- If you never set one, Stripe builds one by cutting your regular descriptor to 10 characters.
- The prefix, the suffix, and the * separator between them must fit in 22 characters total.
- Subscription charges ignore the suffix API. Set their descriptor on the product or the invoice instead.
Who this helps: you run a subscription business on Stripe and a customer just asked what PALMSTREE* on their card statement is.
A shortened descriptor is Stripe's name for the static prefix at the start of every card statement descriptor. It must be 2 to 10 characters and recognizably your business name. Stripe pairs it with a per-charge suffix that describes the specific transaction. If you never set one, Stripe shortens your regular descriptor for you, and the result is rarely readable.
What is a shortened descriptor?
It is the fixed part of what your customer sees on their card statement. Stripe splits card descriptors into two pieces: a static prefix tied to your account (Stripe's docs also call it the statement descriptor prefix), and a dynamic suffix tied to each charge. The Dashboard calls that prefix the shortened descriptor. It appears on any card charge that carries a suffix.
The split exists so one account can describe different things. The prefix says who charged the card. The suffix says what the charge was for: a plan name, an event, an order. Non-card payments skip all of this and use your full static descriptor.
Why did Stripe cut my business name short?
Because you set a static descriptor but no shortened descriptor. Whenever a card charge carries a suffix, from Checkout, a subscription product, or a platform, Stripe needs the 2 to 10 character prefix. If you never chose one, it builds one by cutting your static descriptor to 10 characters. "PALM STREET COFFEE" becomes PALM STREE. Nobody chose that string. It is just where the cut landed.
This is the most common way merchants discover the setting: a customer statement shows a chopped name, the customer doesn't recognize it, and either an email or a dispute follows. An unrecognized charge is not a small problem. On Visa it typically arrives as reason code 10.4, on Mastercard as 4863, and both count against the ratios card networks judge you on.
How do the prefix and suffix fit in 22 characters?
The full descriptor has a hard limit of 22 characters, and the separator spends two of them. Stripe joins the prefix and suffix with an asterisk and a space. A 7-character prefix like RUNCLUB leaves 13 for the suffix: RUNCLUB* OCT MARATHON fits, RUNCLUB* OCTOBER MARATHON does not.
The rules, in one place:
| Rule | Limit |
|---|---|
| Shortened descriptor (prefix) | 2 to 10 characters |
Full descriptor (prefix + * + suffix) | 5 to 22 characters |
| Characters | Latin only, at least one letter in each part |
| Banned characters | < > \ ' " * |
| Content | Must reflect the business name your customers know |
Pick the shortest prefix your customers still recognize. Every character you save goes to the suffix, and the suffix is where you explain the charge.
How do you set a shortened descriptor in Stripe?
- Open the Dashboard and go to Settings, then Business details.
- Under Public business information, set the shortened descriptor field.
- For one-off card charges, pass
statement_descriptor_suffixon the PaymentIntent or Checkout Session. Payment Links and subscriptions have no suffix parameter; for those, use the product descriptor covered below. - Run a real charge on your own card and read the statement line like a stranger would.
Before you commit to a name, run it through our statement descriptor checker. It applies these rules plus the card network ones and shows the statement line your customer will actually see.
Why can't you set a suffix on subscription charges?
Because Stripe creates subscription charges for you, there is never a moment where your code can attach a suffix. The API rejects the method every tutorial teaches. For subscriptions, the descriptor comes from your account default unless you set it somewhere Stripe does read.
Stripe checks two places, in order:
A worked example. Say you sell two plans, Basic and Pro, and your brand is AcmeApp. Set statement_descriptor to ACMEAPP PRO PLAN on the Pro product and ACMEAPP BASIC on the Basic product. One warning: whatever you put here replaces the entire statement line. Set it to PRO PLAN alone and your rebills go out with no brand on them at all, which is the exact unrecognized charge this article is about.
What should a subscription business put in the descriptor?
The name your customer saw at checkout, plus a way to reach you. The riskiest charge you process is the first rebill: the customer signed up weeks ago, the brand on the statement doesn't match the product name they remember, and the dispute button is closer than your support email.
Three things close that gap:
- Match the checkout brand. If you sell as SuperFit but your legal name is Wellness Labs LLC, the descriptor must say SUPERFIT.
- Include contact details. Visa's rules effective April 2026 require online (card-not-present) descriptors to carry a phone number, URL, or email in the city field, the slot on the statement that normally shows a city. A customer who can reach you sends an email. One who can't opens a dispute.
- Mark trial conversions. The same Visa update lets a converted free trial carry an "End Trial" indicator in the descriptor, so the first real charge explains itself.
A clear descriptor stops the disputes caused by confusion. It does nothing for the ones caused by real fraud or by customers gaming refunds, which is why descriptor hygiene is step one of prevention, not all of it. Our reason code library shows which codes trace back to descriptors and which don't.
From April 2026, Visa requires online (card-not-present) merchants to include a phone number, URL, or email in the descriptor's city slot. Most Stripe accounts set up before that date have never checked theirs.
FAQ
What happens if I don't set a shortened descriptor?
Whenever a card charge carries a suffix, Stripe builds the prefix by truncating your static descriptor to 10 characters. If your name is longer than that, the cut lands wherever it lands, and customers see a fragment you never chose.
Can I change it after launch?
Yes, in the Dashboard, and it applies to new charges immediately. Past charges keep the old text. If you rebrand, change the descriptor the same day. The old name on a statement after a rebrand is an unrecognized charge waiting to happen.
Does the suffix work on non-card payments?
No. Dynamic suffixes are card-only. Bank debits, wallets, and other methods show your full static descriptor, so that field still needs to be recognizable on its own.
Is the shortened descriptor the same as my DBA?
It must reflect your DBA, URL, or legal name, but it's a separate field. The test is recognition: whatever name your customer saw when they paid is the name the statement should lead with.
Facts checked against Stripe's documentation and Visa's rules effective April 2026. Last reviewed August 27, 2026.