---
title: "Custom card statement descriptors"
url: "https://trialvalid.com/product/custom-statement-descriptors.md"
canonical_url: "https://trialvalid.com/product/custom-statement-descriptors"
last_updated: "2026-10-19"
type: "guide"
summary: "TrialValid builds a card statement suffix of up to 10 characters from your brand, or checks one you set against the 5 to 22 character rules."
related: ["https://trialvalid.com/product.md", "https://trialvalid.com/product/trial-holds.md", "https://trialvalid.com/product/trial-pages.md", "https://trialvalid.com/product/attribution.md", "https://trialvalid.com/product/alerts.md", "https://trialvalid.com/product/trial-reminders.md", "https://trialvalid.com/docs/trial-lifecycle.md", "https://trialvalid.com/docs/webhooks.md", "https://trialvalid.com/product/ai-optimization.md", "https://trialvalid.com/product/high-value-alerts.md", "https://trialvalid.com/product/dispute-readiness.md"]
---

# Custom card statement descriptors

> **For AI agents:** the complete index of TrialValid pages is [llms.txt](https://trialvalid.com/llms.txt). Every page is also served as markdown at its URL plus .md.

TrialValid builds a card statement suffix of up to 10 characters from your brand, or checks one you set against the 5 to 22 character rules.

## How it works

1. TrialValid takes your brand name and keeps only capital letters A to Z and digits 0 to 9, up to 10 characters.
2. The suffix is sent to Stripe, which joins it to your account prefix as `PREFIX* SUFFIX` on the card statement.
3. If you set a full descriptor yourself, it is checked first: 5 to 22 characters, Latin letters, digits, spaces and punctuation, at least one letter, and none of `< > \ ' " *`.
4. A descriptor that breaks a rule is refused with a message that names the rule, before it reaches Stripe.

## Why it works

A buyer who does not recognize a line on their statement is the buyer who asks the bank about it. A descriptor built from your brand name is one they recognize.

Card statements show the prefix on your Stripe account, then `* `, then the suffix, inside 22 characters in total. The prefix is 2 to 10 characters, so a suffix of up to 10 fits with any prefix. If a brand name has no letter in it, the suffix falls back to `TRIAL`.

Stripe may replace everything after the 10th character with `* TRIAL OVER` on charges made at the end of a trial, so put what matters most first.

## Traditional approach versus this

|  | Setting it by hand | With TrialValid |
| --- | --- | --- |
| Choosing the text | Guess what the rules allow | Built from your brand name by a fixed rule |
| Catching a bad value | An error from Stripe, or a rejected change | A clear message before anything is sent |
| Length limit | Look it up in Stripe documentation | Checked for you: suffix up to 10, full descriptor 5 to 22 |
| Brand with no letters | Fails or shows digits only | Falls back to a safe suffix |

## Controls

- You can set your own descriptor instead of the one built from your brand.
- The rules are enforced as Stripe states them: 5 to 22 characters, at least one letter, no `< > \ ' " *`.
- Card payments use the suffix form, so the suffix never exceeds 10 characters.

### How long can a statement suffix be?

Up to 10 characters. That leaves room for any Stripe account prefix, which is 2 to 10 characters, inside the 22 character total.

### What are the rules for a full descriptor?

Between 5 and 22 characters, Latin characters only, at least one letter, and none of `< > \ ' " *`.

### Why does the end of my descriptor change on some charges?

Stripe may overwrite what follows the 10th character with `* TRIAL OVER` on charges made when a trial ends. Keep the part buyers recognize in the first 10 characters.

### What if my brand name has no letters?

The suffix falls back to `TRIAL`, because a descriptor needs at least one letter.

### Are lowercase letters kept?

The suffix built from your brand is uppercase. A descriptor you set yourself may use any printable Latin characters that pass the rules.

## Related

- [How card-backed free trials work](https://trialvalid.com/product.md)
- [Card holds for free trials](https://trialvalid.com/product/trial-holds.md)
- [Trial pages and variants](https://trialvalid.com/product/trial-pages.md)
- [Attribution and analytics](https://trialvalid.com/product/attribution.md)
- [Alerts and statement descriptors](https://trialvalid.com/product/alerts.md)
- [Trial reminders and records](https://trialvalid.com/product/trial-reminders.md)
- [Trial lifecycle](https://trialvalid.com/docs/trial-lifecycle.md)
- [Webhooks](https://trialvalid.com/docs/webhooks.md)
- [AI page variants for trial signup](https://trialvalid.com/product/ai-optimization.md)
- [High-value trial alerts in Slack](https://trialvalid.com/product/high-value-alerts.md)
- [Dispute readiness for free trials](https://trialvalid.com/product/dispute-readiness.md)
