Account
Statement descriptors

Statement descriptors

Learn how statement descriptors work.

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 activate your account, 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 may 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.
  • Does not contain any of the 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.

Set the static component

You set a static statement descriptor or the shortened descriptor (prefix) in the Dashboard. This value then appears on all customer statements for charges or payments.

A static statement descriptor is sufficient if:

  • Your business provides only a single product or service.
  • Your customers will 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.

Set both the statement descriptor and the shortened statement descriptor for flexibility in setting statement descriptors on charges.

If you set the statement descriptor on card charges and don’t set a prefix (shortened descriptor), Stripe truncates the account statement descriptor as needed to set the prefix value. If the account statement descriptor contains fewer than 10 characters, it won’t be truncated.

Set a dynamic suffix

Dynamic suffixes are supported only for card charges. The suffix should 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.

Make sure that the total length of the concatenated descriptor is no more than 22 characters, including the * symbol and the space. So, for example, if the prefix is RUNCLUB (7 characters), the dynamic suffix can contain up to 13 characters – for example, 9-22-19 10K (11 characters) or OCT MARATHON (12 characters). The computed statement descriptor would then be RUNCLUB* 9-22-19 10K or RUNCLUB* OCT MARATHON.

For card charges, providing a dynamic statement descriptor requires the statement_descriptor_suffix value. For non-card charges, if you set a value only for statement_descriptor on a payment intent, Stripe uses it in place of the account statement descriptor (static descriptor).

The following examples show how to add a suffix to the PaymentIntent object.

curl https://api.stripe.com/v1/payment_intents \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card \ -d statement_descriptor_suffix="example descriptor"
# Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' intent = Stripe::PaymentIntent.create({ amount: 1099, currency: 'usd', payment_method_types: ['card'], statement_descriptor_suffix: 'example descriptor', })
# Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' stripe.PaymentIntent.create( amount=1099, currency='usd', payment_method_types=['card'], statement_descriptor_suffix='example descriptor', )
// Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); \Stripe\PaymentIntent::create([ 'amount' => 1099, 'currency' => 'usd', 'payment_method_types' => ['card'], 'statement_descriptor_suffix' => 'example descriptor', ]);
// Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; PaymentIntentCreateParams params = PaymentIntentCreateParams.builder() .setAmount(1099L) .setCurrency("usd") .addPaymentMethodType("card") .setStatementDescriptorSuffix("example descriptor") .build(); PaymentIntent.create(params);
// Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); const paymentIntent = await stripe.paymentIntents.create({ amount: 1099, currency: 'usd', payment_method_types: ['card'], statement_descriptor_suffix: 'example descriptor', });
// Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.PaymentIntentParams{ Amount: stripe.Int64(1099), Currency: stripe.String(string(stripe.CurrencyUSD)), PaymentMethodTypes: stripe.StringSlice([]string{ "card", }), StatementDescriptorSuffix: stripe.String("example descriptor"), } paymentintent.New(params)
// Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var service = new PaymentIntentService(); var options = new PaymentIntentCreateOptions { Amount = 1099, Currency = "usd", PaymentMethodTypes = new List<string> { "card" }, StatementDescriptorSuffix = "example descriptor", }; var intent = service.Create(options);

Set the statement descriptor on non-card charges

Only card charges require the statement_descriptor_suffix value for a dynamic statement descriptor. For non-card charges, you can set the complete statement descriptor on the charge with the statement_descriptor value.

Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.