Connect
Add payment methods

Add payment methods

Offer other payment methods regardless of your Connect integration path.

Consumers and businesses use dozens of payment methods around the world. Accepting more payment methods can help you attain new users and improve conversion. Stripe lets you accept payment methods directly from customers or enable other businesses to accept payment methods, with no extra onboarding steps.

To learn which payment methods are right for your platform, read our overview of payment methods.

Accept payment methods directly from customers and then pay out

If you collect payment from customers using destination charges or separate charges and transfers, you can add payment methods to your checkout page using Payment Intents or Stripe Checkout. No other steps are required. Go to the payment methods settings in your Dashboard to see which payment methods you’re eligible to use.

Enable other businesses to accept payment methods

If you enable other businesses to accept payments with direct charges or with the on_behalf_of parameter, you may need to take extra steps before adding them to your checkout page, depending on your account type.

Standard accounts

Most payment methods work by default on Standard accounts, with no extra steps for you or your users. Some payment methods, including Alipay and WeChat Pay, require your users to manually activate them on the payment methods settings page in their Dashboard.

You can use the accounts API to query which payment method capabilities are available by default for each account. The payment method capabilities table lists the payment methods that require manual activation before use.

curl https://api.stripe.com/v1/accounts/{ACCOUNT_ID} \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc:
# 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.list_capabilities('{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' stripe.Account.list_capabilities('{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'); $stripe->accounts->allCapabilities('{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"; Account account = Account.retrieve("{ACCOUNT_ID}"); CapabilityCollection capabilities = account.capabilities().list();
// 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 capabilities = await stripe.accounts.listCapabilities('{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.CapabilityListParams{ Account: stripe.String("{ACCOUNT_ID}"), } i := capability.List(params) for i.Next() { c := i.Capability() }
// 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 CapabilityService(); StripeList<Capability> capabilities = service.List("{ACCOUNT_ID}");

The accounts API response includes a capabilities hash with entries for payments capabilities. Accounts can create payments for any payment method with an active capability.

{ "id": "acct_1BiSjnKmnBV0fuKs", "object": "account", ... "capabilities": { "card_payments": "active", "ideal_payments": "active", "sepa_debit_payments": "pending", "transfers": "active" }, ... "type": "standard" }

Express accounts

Before adding payment methods to your checkout page, use the capabilities API to request payment method capabilities on your accounts.

Some payment methods require extra verification information from sole proprietors. We automatically collect this information when you request capabilities for these payment methods on a sole proprietor’s account. The account capabilities page lists the payment methods that have extra verification requirements, or additional country or business type restrictions.

curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc:
# 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.list_capabilities('{{CONNECTED_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' stripe.Account.list_capabilities('{{CONNECTED_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'); $stripe->accounts->allCapabilities('{{CONNECTED_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"; Account account = Account.retrieve("{{CONNECTED_ACCOUNT_ID}}"); CapabilityCollection capabilities = account.capabilities().list();
// 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 capabilities = await stripe.accounts.listCapabilities('{{CONNECTED_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.CapabilityListParams{ Account: stripe.String("{{CONNECTED_ACCOUNT_ID}}"), } i := capability.List(params) for i.Next() { c := i.Capability() }
// 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 CapabilityService(); StripeList<Capability> capabilities = service.List("{{CONNECTED_ACCOUNT_ID}}");

The accounts API response includes a capabilities hash with entries for payments capabilities. Accounts can create payments for any payment method with an active capability.

{ "id": "acct_1BiSjnKmnBV0fuKs", "object": "account", ... "capabilities": { "card_payments": "active", "ideal_payments": "active", "sepa_debit_payments": "pending", "transfers": "active" }, ... "type": "express" }

Custom accounts

Before adding payment methods to your checkout page, use the capabilities API to request payment method capabilities on your accounts.

Most payment methods have the same verification requirements as cards, though there are some restrictions on business types and country availability. You can use the accounts API to query which payment method capabilities are available by default for each account. The payment method capabilities table lists the payment methods that require manual activation before use.

curl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc:
# 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.list_capabilities('{{CONNECTED_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' stripe.Account.list_capabilities('{{CONNECTED_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'); $stripe->accounts->allCapabilities('{{CONNECTED_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"; Account account = Account.retrieve("{{CONNECTED_ACCOUNT_ID}}"); CapabilityCollection capabilities = account.capabilities().list();
// 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 capabilities = await stripe.accounts.listCapabilities('{{CONNECTED_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.CapabilityListParams{ Account: stripe.String("{{CONNECTED_ACCOUNT_ID}}"), } i := capability.List(params) for i.Next() { c := i.Capability() }
// 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 CapabilityService(); StripeList<Capability> capabilities = service.List("{{CONNECTED_ACCOUNT_ID}}");

The accounts API response includes a capabilities hash with entries for payments capabilities. Accounts can create payments for any payment method with an active capability.

{ "id": "acct_1BiSjnKmnBV0fuKs", "object": "account", ... "capabilities": { "card_payments": "active", "ideal_payments": "active", "sepa_debit_payments": "pending", "transfers": "active" }, ... "type": "custom" }