Connect
Set statement descriptors

Set statement descriptors with Connect

Learn how statement descriptors work for charges with Connect.

Statement descriptors explain charges or payments on bank statements and include information that banks and card networks require to help customers understand their statements. Familiarize yourself with the requirements for statement descriptors.

Set the static component for a connected account

Statement descriptors can be static in one of two ways:

  • The entire statement descriptor is static (static descriptor).
  • The first half of the statement descriptor is static (static prefix) and the second half is dynamic.

The static component refers to either the static prefix or the static descriptor, and is set on the platform or connected account, depending on how your platform sets up charges.

For Standard accounts, the connected account sets the static components in the Dashboard.

For Express and Custom accounts, the platform account sets the static descriptor with the settings[payments][statement_descriptor] argument and the static prefix with the settings[card_payments][statement_descriptor_prefix] argument on the Account object.

curl https://api.stripe.com/v1/accounts \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d type=custom \ -d country=US \ -d business_type=company \ -d "requested_capabilities[]"=card_payments \ -d "requested_capabilities[]"=transfers \ -d "settings[payments][statement_descriptor]"="RUNNER CLUB"
# 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::Account.create({ type: 'custom', country: 'US', business_type: 'company', requested_capabilities: [ 'card_payments', 'transfers', ], settings: { payments: { statement_descriptor: 'RUNNER CLUB', }, }, })
# 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.Account.create( type='custom', country='US', business_type='company', requested_capabilities=[ 'card_payments', 'transfers', ], settings={ 'payments': { 'statement_descriptor': 'RUNNER CLUB', }, }, )
// 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\Account::create([ 'type' => 'custom', 'country' => 'US', 'business_type' => 'company', 'requested_capabilities' => [ 'card_payments', 'transfers', ], 'settings' => [ 'payments' => [ 'statement_descriptor' => 'RUNNER CLUB', ], ], ]);
// 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"; AccountCreateParams params = AccountCreateParams.builder() .setType(AccountCreateParams.Type.CUSTOM) .setCountry("US") .setBusinessType(AccountCreateParams.BusinessType.COMPANY) .addRequestedCapability(AccountCreateParams.RequestedCapability.CARD_PAYMENTS) .addRequestedCapability(AccountCreateParams.RequestedCapability.TRANSFERS) .setSettings( AccountCreateParams.Settings.builder() .setPayments( AccountCreateParams.Settings.Payments.builder() .setStatementDescriptor("RUNNER CLUB") .build()) .build()) .build(); Account account = Account.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 account = await stripe.accounts.create({ type: 'custom', country: 'US', business_type: 'company', requested_capabilities: [ 'card_payments', 'transfers', ], settings: { payments: { statement_descriptor: 'RUNNER CLUB', }, }, });
// 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.AccountParams{ Type: stripe.String(string(stripe.AccountTypeCustom)), Country: stripe.String("US"), BusinessType: stripe.String(string(stripe.AccountBusinessTypeCompany)), RequestedCapabilities: []*string{ stripe.String("card_payments"), stripe.String("transfers"), }, Settings: &stripe.AccountSettingsParams{ Payments: &stripe.AccountSettingsPaymentsParams{ StatementDescriptor: stripe.String("RUNNER CLUB"), }, }, } a, _ := account.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 options = new AccountCreateOptions { Type = "custom", Country = "US", BusinessType = "company", RequestedCapabilities = new List<string> { "card_payments", "transfers", }, Settings = new AccountSettingsOptions { Payments = new AccountSettingsPaymentsOptions { StatementDescriptor = "RUNNER CLUB", }, }, }; var service = new AccountService(); var account = service.Create(options);

The customer’s statement uses the connected account’s static component for the following charge types:

  • Direct charges
  • Destination charges with on_behalf_of
  • Separate charges and transfers with on_behalf_of

Using the static component on connected accounts requires the card_payments capability.

The customer’s statement uses the platform account’s static component for the following charge types:

  • Destination charges without on_behalf_of
  • Separate charges and transfers without on_behalf_of

Any additional information that’s displayed on a customer’s statement is also provided by the account that provides the static component (e.g., support address or support phone number). If the connected account hasn’t provided this information, on_behalf_of charges use the platform account’s information.

If you use a dynamic suffix on a charge that uses the connected account’s static descriptor, you can set a prefix to ensure the complete statement descriptor appears as intended.

curl https://api.stripe.com/v1/accounts \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d type=custom \ -d country=US \ -d business_type=company \ -d "requested_capabilities[]"=card_payments \ -d "requested_capabilities[]"=transfers \ -d "settings[card_payments][statement_descriptor_prefix]"=RUNCLUB
# 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::Account.create({ type: 'custom', country: 'US', business_type: 'company', requested_capabilities: [ 'card_payments', 'transfers', ], settings: { card_payments: { statement_descriptor_prefix: 'RUNCLUB', }, }, })
# 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.Account.create( type='custom', country='US', business_type='company', requested_capabilities=[ 'card_payments', 'transfers', ], settings={ 'card_payments': { 'statement_descriptor_prefix': 'RUNCLUB', }, }, )
// 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\Account::create([ 'type' => 'custom', 'country' => 'US', 'business_type' => 'company', 'requested_capabilities' => [ 'card_payments', 'transfers', ], 'settings' => [ 'card_payments' => [ 'statement_descriptor_prefix' => 'RUNCLUB', ], ], ]);
// 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"; AccountCreateParams params = AccountCreateParams.builder() .setType(AccountCreateParams.Type.CUSTOM) .setCountry("US") .setBusinessType(AccountCreateParams.BusinessType.COMPANY) .addRequestedCapability(AccountCreateParams.RequestedCapability.CARD_PAYMENTS) .addRequestedCapability(AccountCreateParams.RequestedCapability.TRANSFERS) .setSettings( AccountCreateParams.Settings.builder() .setCardPayments( AccountCreateParams.Settings.CardPayments.builder() .setStatementDescriptorPrefix("RUNCLUB") .build()) .build()) .build(); Account account = Account.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 account = await stripe.accounts.create({ type: 'custom', country: 'US', business_type: 'company', requested_capabilities: [ 'card_payments', 'transfers', ], settings: { card_payments: { statement_descriptor_prefix: 'RUNCLUB', }, }, });
// 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.AccountParams{ Type: stripe.String(string(stripe.AccountTypeCustom)), Country: stripe.String("US"), BusinessType: stripe.String(string(stripe.AccountBusinessTypeCompany)), RequestedCapabilities: []*string{ stripe.String("card_payments"), stripe.String("transfers"), }, Settings: &stripe.AccountSettingsParams{ CardPayments: &stripe.AccountSettingsCardPaymentsParams{ StatementDescriptorPrefix: stripe.String("RUNCLUB"), }, }, } a, _ := account.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 options = new AccountCreateOptions { Type = "custom", Country = "US", BusinessType = "company", RequestedCapabilities = new List<string> { "card_payments", "transfers", }, Settings = new AccountSettingsOptions { CardPayments = new AccountSettingsCardPaymentsOptions { StatementDescriptorPrefix = "RUNCLUB", }, }, }; var service = new AccountService(); var account = service.Create(options);

The prefix must contain between 2 and 10 characters, inclusive. The complete statement descriptor can contain up to 22 characters, including the * symbol and the space that concatenates the prefix and suffix.

Set the statement_descriptor and statement_descriptor_prefix for flexibility in setting statement descriptors on charges.

If the statement descriptor is set on card charges and no prefix is set, Stripe truncates the account statement descriptor as needed to set the prefix value.

Set a dynamic suffix for connected account charges

Dynamic suffixes are supported only for card charges by using the statement_descriptor_suffix parameter. You can read more about dynamic suffixes or see the concatenated statement descriptors (prefix* suffix) in the Dashboard.

curl https://api.stripe.com/v1/payment_intents \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d "payment_method_types[]"=card \ -d amount=1000 \ -d currency=usd \ -d statement_descriptor_suffix="Custom suffix" \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}"
# 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' payment_intent = Stripe::PaymentIntent.create({ payment_method_types: ['card'], amount: 1000, currency: 'usd', statement_descriptor_suffix: 'Custom suffix', }, stripe_account: '{{CONNECTED_STRIPE_ACCOUNT_ID}}')
# 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' payment_intent = stripe.PaymentIntent.create( payment_method_types=['card'], amount=1000, currency='usd', statement_descriptor_suffix='Custom suffix', stripe_account='{{CONNECTED_STRIPE_ACCOUNT_ID}}', )
// 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'); $payment_intent = \Stripe\PaymentIntent::create([ 'payment_method_types' => ['card'], 'amount' => 1000, 'currency' => 'usd', 'statement_descriptor_suffix' => 'Custom suffix', ], ['stripe_account' => '{{CONNECTED_STRIPE_ACCOUNT_ID}}']);
// 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"; ArrayList paymentMethodTypes = new ArrayList(); paymentMethodTypes.add("card"); Map<String, Object> params = new HashMap<>(); params.put("payment_method_types", paymentMethodTypes); params.put("amount", 1000); params.put("currency", "usd"); params.put("statement_descriptor_suffix", "Custom suffix"); RequestOptions requestOptions = RequestOptions.builder().setStripeAccount({{CONNECTED_STRIPE_ACCOUNT_ID}}).build(); PaymentIntent paymentIntent = PaymentIntent.create(params, requestOptions);
// 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({ payment_method_types: ['card'], amount: 1000, currency: 'usd', statement_descriptor_suffix: 'Custom suffix', }, { stripeAccount: '{{CONNECTED_STRIPE_ACCOUNT_ID}}', });
// 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{ PaymentMethodTypes: stripe.StringSlice([]string{ "card", }), Amount: stripe.Int64(1000), Currency: stripe.String(string(stripe.CurrencyUSD)), StatementDescriptorSuffix: stripe.String("Custom suffix"), } params.SetStripeAccount("{{CONNECTED_STRIPE_ACCOUNT_ID}}") pi, _ := 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 createOptions = new PaymentIntentCreateOptions { PaymentMethodTypes = new List<string> { "card", }, Amount = 2000, Currency = "usd", StatementDescriptorSuffix = "Custom suffix", }; var requestOptions = new RequestOptions(); requestOptions.StripeAccount = "{{CONNECTED_STRIPE_ACCOUNT_ID}}"; service.Create(createOptions, requestOptions);