# Statement descriptors

Learn how statement descriptors work.

For information about setting statement descriptors for connected accounts, see [Set statement descriptors for connected accounts](https://docs.stripe.com/connect/statement-descriptors.md).

Statement descriptors explain charges or payments on bank statements. Using clear and accurate statement descriptors can reduce chargebacks and disputes. Banks and card networks require the inclusion of certain types of information that help customers understand their statements, and statement descriptors provide this information.

When you [set up your Stripe account](https://docs.stripe.com/get-started/account/set-up.md#public-business-information), you can set a single statement descriptor (static statement descriptor) that appears on all customer statements. For card charges, you can also create a statement descriptor that contains a static prefix associated with your account but with a dynamic suffix associated with each charge. This enables you to specify details about the product, service, or payment on bank or card statements.

Most banks display this information consistently, but some might display it incorrectly or not at all.

## Statement descriptor requirements 

A complete statement descriptor—either a single static descriptor or the combination of a prefix and suffix—must meet the following requirements:

- Contains only Latin characters.
- Contains between 5 and 22 characters, inclusive.
- Contains at least one letter (if using a prefix and a suffix, both require at least one letter).
- Doesn’t contain any of the following special characters: `<`, `>`, `\`, `'` `"` `*`.
- Reflects your Doing Business As (DBA) name.
- Contains more than a single common term or common website URL. A website URL only is acceptable if it provides a clear and accurate description of a transaction on a customer’s statement.

A static prefix, also called a shortened descriptor in the Dashboard, must contain between 2 and 10 characters, inclusive. The remaining characters are reserved for the dynamic suffix.

The 22-character limit applies to the complete descriptor. The API validates the `statement_descriptor_suffix` value against its own 22-character limit, so a suffix can pass validation and still not fit in the complete descriptor. See [Fit the suffix in the complete descriptor](https://docs.stripe.com/get-started/account/statement-descriptors.md#suffix-length).

## Set the static statement descriptor or prefix 

You set a static statement descriptor or the shortened descriptor (prefix) in the [Dashboard](https://dashboard.stripe.com/settings/business-details). This value appears on all customer statements for non-card charges or payments.

A static statement descriptor is sufficient if:

- Your business provides only a single product or service.
- Your customers understand a static value for any transaction with your business.
- You prefer to provide the same statement descriptor for all transactions.

For card charges, consider a static prefix with dynamic suffix if:

- You provide multiple products or services.
- Your customers might not understand a single value for all their transactions with your business.
- You prefer to provide transaction-specific details on the statement descriptor.

You can set both the statement descriptor for non-card charges and the shortened statement descriptor prefix for card charges.

If you set the static statement descriptor but don’t set a prefix, then Stripe uses the static statement descriptor as the prefix for card payments. If it’s longer than 10 characters, we truncate it to fit the character limit.

## Set a dynamic suffix 

Dynamic suffixes are supported only for card payments. Use the suffix to specify details about the transaction so your customer can understand it clearly on their statement. The suffix is concatenated with the prefix, the `*` symbol, and a space to form the complete statement descriptor that your customer sees.

For example, if the prefix is `RUNCLUB` and the suffix is `OCT MARATHON`, the complete statement descriptor is `RUNCLUB* OCT MARATHON`.

Specify the suffix in the `PaymentIntent`’s [statement_descriptor_suffix](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-statement_descriptor_suffix) parameter:

```curl
curl https://api.stripe.com/v1/payment_intents \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d amount=1099 \
  -d currency=usd \
  -d "automatic_payment_methods[enabled]=true" \
  -d statement_descriptor_suffix=INV-123456
```

If you use *Checkout* (A low-code payment integration that creates a customizable form for collecting payments. You can embed Checkout directly in your website, redirect customers to a Stripe-hosted payment page, or create a customized checkout page with Stripe Elements), specify the suffix in the `CheckoutSession`’s [payment_intent_data.statement_descriptor_suffix](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_intent_data-statement_descriptor_suffix) parameter.

### Fit the suffix in the complete descriptor 

Stripe checks the length of the suffix and the length of the complete descriptor separately:

- **The suffix is longer than 22 characters**: The request fails with an error.
- **The suffix is 22 characters or fewer, but the complete descriptor is longer than 22 characters**: The request succeeds, and Stripe truncates the complete descriptor. Your customer might not see the end of the suffix.

The suffix can use up to 22 characters minus the length of your prefix, minus 2 more for the `*` symbol and the space. In some cases, Stripe allots the suffix less space than that. Stripe always reserves at least 10 characters for the suffix, so a suffix of 10 characters or fewer always fits with any valid prefix.

For example, if the prefix is `RUNCLUB` (7 characters), the suffix can contain up to 13 characters:

| Suffix | Length | Result |
| --- | --- | --- |
| `INV-123456789` | 13 | The longest suffix that can fit with this prefix. |
| `INV-1234567890` | 14 | The request succeeds, but the suffix is longer than the space available, so Stripe truncates the complete descriptor. |

After you create the payment, check the resulting `Charge`’s [calculated_statement_descriptor](https://docs.stripe.com/api/charges/object.md#charge_object-calculated_statement_descriptor) to see the complete descriptor that Stripe calculated. This field shows the result only after payment, so you can’t use it to check a suffix beforehand. The card issuer still controls how the descriptor appears on the statement.

These rules apply to Latin statement descriptors. For kanji and kana suffixes, see the [Japanese statement descriptor requirements](https://docs.stripe.com/get-started/account/statement-descriptors.md#japanese-requirements).

## Override the default statement descriptor

### One-time payments

You can override the static statement descriptor for a non-card payment by specifying a value for [statement_descriptor](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-statement_descriptor) when you create the `PaymentIntent`.

For card payments, you can’t specify the `statement_descriptor`. You can only specify the `statement_descriptor_suffix`.

### Subscriptions and invoices

Because Stripe creates subscription charges automatically, you can’t set the `statement_descriptor` or `statement_descriptor_suffix` on the associated `PaymentIntent`. To override the default statement descriptor for a subscription or invoice payment, you can do one of the following:

- Update the `Invoice` to specify the [statement_descriptor](https://docs.stripe.com/api/invoices/update.md#update_invoice-statement_descriptor).
- Specify the `statement_descriptor` when you [create](https://docs.stripe.com/api/products/create.md#create_product-statement_descriptor) or [update](https://docs.stripe.com/api/products/update.md#update_product-statement_descriptor) a `Product`.

> #### Updating invoices
> 
> Normally, you can’t edit finalized [subscription invoices](https://docs.stripe.com/billing/invoices/subscription.md). If you want to add a custom statement descriptor to a subscription invoice, set the `Subscription`’s [collection_method](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-collection_method) to `send_invoice`. You might also need to set the `Invoice`’s [auto_advance](https://docs.stripe.com/api/invoices/update.md#update_invoice-auto_advance) to false.

When creating a subscription payment, Stripe selects the statement descriptor in the following order of precedence:

1. Defined on the `Invoice`.
2. Defined on the `Product`, including a `Product` associated with a `Plan` or `Price` included in the invoice. If a `Subscription` contains multiple items, then Stripe uses the first one in its [items.data](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items-data) array (not the `Invoice`’s `lines.data` array) that has a custom statement descriptor.
3. The default statement descriptor for the charge type.

## Set Japanese statement descriptors

Japanese businesses can set kanji and kana statement descriptors. Providing clear and easy to understand statement descriptors is important to reduce confusion and chargebacks. We recommend setting statement descriptors in all three supported scripts (kanji, kana, and Latin characters).

You can change your account’s [static](https://docs.stripe.com/get-started/account/statement-descriptors.md#static) kanji and kana statement descriptors and shortened descriptors (prefix) in the [Dashboard](https://dashboard.stripe.com/settings/business-details).

For card charges, you can set [dynamic suffixes](https://docs.stripe.com/get-started/account/statement-descriptors.md#dynamic) in kanji and kana on `PaymentIntents` and `CheckoutSessions`. We compute the full descriptor that cardholders see by concatenating the shortened prefix and separators, in the same way as `statement_descriptor_suffix`.

The following example shows how to set kanji and kana suffixes on a `PaymentIntent`.

```curl
curl https://api.stripe.com/v1/payment_intents \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d amount=1000 \
  -d currency=jpy \
  -d "automatic_payment_methods[enabled]=true" \
  -d "statement_descriptor_suffix=example descriptor" \
  -d "payment_method_options[card][statement_descriptor_suffix_kanji]=漢字サフィックス" \
  -d "payment_method_options[card][statement_descriptor_suffix_kana]=カナサフィックス"
```

### Requirements 

While Japanese statement descriptors share some requirements with [English requirements](https://docs.stripe.com/get-started/account/statement-descriptors.md#requirements), the following table shows additional requirements for kanji and kana descriptors.

|  | Kanji | Kana |
| --- | --- | --- |
| Maximum total length | 17 | 22 |
| Minimum prefix length | 1 | 2 |
| Maximum prefix length | 10 | 10 |
| Supported character type | Kanji, kana, and Latin | Kana |
| Validation rule | `< > \ ' " * ＊` aren’t allowed | Only kana, spaces, dashes, and dots are allowed |

> Total length is the length of either the static descriptor or the concatenated descriptor (prefix + separator + suffix). Descriptors exceeding the maximum length are truncated.

### Issuer behavior

Japanese statement descriptors are available only when both of the following are true:

- The card is a Visa or Mastercard issued in Japan.
- The charge is processed by a Japanese business or on behalf of a Japanese business.

For applicable charges, most issuers use a Japanese statement descriptor rather than a Latin one. However, it’s ultimately up to the issuer to decide whether to show kanji, kana, or Latin characters on the cardholder’s statement.

The [calculated_statement_descriptor](https://docs.stripe.com/api/charges/object.md#charge_object-calculated_statement_descriptor) in API responses is always the Latin statement descriptor, but that doesn’t prevent the issuer from using a Japanese statement descriptor.

### Statement descriptor display timing 

Kanji and kana statement descriptors are sent to issuers at time of payment capture. As a result, they usually take a few days to appear on cardholder statements. In the meantime a temporary descriptor might be visible to cardholders:

- **Visa, Mastercard:** The English-language statement descriptor.
- **JCB, Diners Club, and Discover:** The account’s default statement descriptor.
