POST
/v1/customers/{customer}/cardsCreate a card for a customer
Creates a new card or other payment source for a customer. Provide a token or the payment details in card or bank_account, and use metadata or expand when needed. If the customer has no default card, the new card becomes the default payment source.
- RetriesRetries up to 2×, 500ms backoff, 30s timeout.
- IdempotentThe SDK sends
Idempotency-Key, so a retried request is only applied once.
customerstringrequired
The unique identifier of the customer to attach the card or payment source to. The value must be no more than 5,000 characters.
Optional form parameters for creating a customer card or another supported payment source.
alipay_accountstringoptional
A token returned by [Stripe.js](https://stripe.com/docs/js) representing the user’s Alipay account details.
bank_accountobjectoptional
Either a token, like the ones returned by [Stripe.js](https://stripe.com/docs/js), or a dictionary containing a user's bank account details.
cardobjectoptional
A token, like the ones returned by [Stripe.js](https://stripe.com/docs/js).
expandarray<string>optional
Specifies which fields in the response should be expanded.
metadataobjectoptional
Set of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
sourcestringoptional
Please refer to full [documentation](https://api.stripe.com) instead.
200Returns the created payment source, which may be an account, bank account, card, or other supported source object.
business_profileobjectoptional
Business information about the account.
business_typestringoptional
The business type.
capabilitiesobjectoptional
charges_enabledbooleanoptional
Whether the account can process charges.
companyobjectoptional
controllerobjectoptional
countrystringoptional
The account's country.
createdintegeroptional
Time at which the account was connected. Measured in seconds since the Unix epoch.
default_currencystringoptional
Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account's country](https://stripe.com/docs/payouts).
details_submittedbooleanoptional
Whether account details have been submitted. Accounts with Stripe Dashboard access, which includes Standard accounts, cannot receive payouts before this is true. Accounts where this is false should be directed to [an onboarding flow](/connect/onboarding) to finish submitting account details.
emailstringoptional
An email address associated with the account. It's not used for authentication and Stripe doesn't market to this field without explicit approval from the platform.
external_accountsobjectoptional
External accounts (bank accounts and debit cards) currently attached to this account. External accounts are only returned for requests where `controller[is_controller]` is true.
future_requirementsobjectoptional
groupsobjectoptional
The groups associated with the account.
idstringrequired
Unique identifier for the object.
individualobjectoptional
This is an object representing a person associated with a Stripe account.
A platform can only access a subset of data in a person for an account where [account.controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is `stripe`, which includes Standard and Express accounts, after creating an Account Link or Account Session to start Connect onboarding.
See the [Standard onboarding](/connect/standard-accounts) or [Express onboarding](/connect/express-accounts) documentation for information about prefilling information and account onboarding steps. Learn more about [handling identity verification with the API](/connect/handling-api-verification#person-information).
metadataobjectoptional
Set of [key-value pairs](https://docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
objectstringrequired
String representing the object's type. Objects of the same type share the same value.
payouts_enabledbooleanoptional
Whether the funds in this account can be paid out.
requirementsobjectoptional
settingsobjectoptional
Options for customizing how the account functions within Stripe.
tos_acceptanceobjectoptional
typestringoptional
The Stripe account type. Can be `standard`, `express`, `custom`, or `none`.
defaultError response.
errorobjectrequired
Error handling
customer must be no more than 5,000 characters and must identify the customer receiving the payment source. When using a bank account object, account_number and country are required; when using a card object, exp_month, exp_year, and number are required. card and bank_account may also be supplied as tokens.