Create a cardholder ​
Creates a new Issuing Cardholder object that can be issued cards.
Returns ​
Returns an Issuing Cardholder object if creation succeeds.
Parameters ​
billing(object, required) The cardholder’s billing address.billing.address(object, required) The cardholder’s billing address.billing.address.city(string, required) City, district, suburb, town, or village.billing.address.country(string, required) Two-letter country code (ISO 3166-1 alpha-2).billing.address.line1(string, required) Address line 1, such as the street, PO Box, or company name.billing.address.postal_code(string, required) ZIP or postal code.billing.address.line2(string, optional) Address line 2, such as the apartment, suite, unit, or building.billing.address.state(string, optional) State, county, province, or region (ISO 3166-2).
name(string, required) The cardholder’s name. This will be printed on cards issued to them. The maximum length of this field is 24 characters. This field cannot contain any special characters or numbers.company(object, optional) Additional information about acompanycardholder.company.tax_id(string, optional) The entity’s business ID number.
email(string, optional) The cardholder’s email address.The maximum length is 800 characters.
individual(object, optional) Additional information about anindividualcardholder.individual.card_issuing(object, optional) Information related to the card_issuing program for this cardholder.individual.card_issuing.user_terms_acceptance(object, optional) Information about cardholder acceptance of Celtic Authorized User Terms. Required for cards backed by a Celtic program.individual.card_issuing.user_terms_acceptance.date(timestamp, required if IP or user_agent is provided) The Unix timestamp marking when the cardholder accepted the Authorized User Terms.individual.card_issuing.user_terms_acceptance.ip(string, required if date or user_agent is provided) The IP address from which the cardholder accepted the Authorized User Terms.individual.card_issuing.user_terms_acceptance.user_agent(string, optional) The user agent of the browser from which the cardholder accepted the Authorized User Terms.
individual.dob(object, optional) The date of birth of this cardholder. Cardholders must be older than 13 years old.individual.dob.day(integer, required) The day of birth, between 1 and 31.individual.dob.month(integer, required) The month of birth, between 1 and 12.individual.dob.year(integer, required) The four-digit year of birth.
individual.first_name(string, optional) The first name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters.individual.last_name(string, optional) The last name of this cardholder. Required before activating Cards. This field cannot contain any numbers, special characters (except periods, commas, hyphens, spaces and apostrophes) or non-latin letters.individual.verification(object, optional) Government-issued ID document for this cardholder.individual.verification.document(object, optional) An identifying document, either a passport or local ID card.individual.verification.document.back(string, optional) The back of an ID returned by a file upload with apurposevalue ofidentity_document.individual.verification.document.front(string, optional) The front of an ID returned by a file upload with apurposevalue ofidentity_document.
metadata(object, optional) Set of key-value pairs 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 tometadata.phone_number(string, optional) The cardholder’s phone number. This will be transformed to E.164 if it is not provided in that format already. This is required for all cardholders who will be creating EU cards. See the 3D Secure documentation for more details.preferred_locales(array of enums, optional) The cardholder’s preferred locales (languages), ordered by preference. Locales can beda,de,en,es,fr,it,pl, orsv. This changes the language of the 3D Secure flow and one-time password messages sent to the cardholder.spending_controls(object, optional) Rules that control spending across this cardholder’s cards. Refer to our documentation for more details.spending_controls.allowed_card_presences(array of strings, optional) Array of card presence statuses from which authorizations will be allowed. Possible options arepresent,not_present. All other statuses will be blocked. Cannot be set withblocked_card_presences. Provide an empty value to unset this control.spending_controls.allowed_categories(array of strings, optional) Array of strings containing categories of authorizations to allow. All other categories will be blocked. Cannot be set withblocked_categories.spending_controls.allowed_merchant_countries(array of strings, optional) Array of strings containing representing countries from which authorizations will be allowed. Authorizations from merchants in all other countries will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g.US). Cannot be set withblocked_merchant_countries. Provide an empty value to unset this control.spending_controls.blocked_card_presences(array of strings, optional) Array of card presence statuses from which authorizations will be declined. Possible options arepresent,not_present. Cannot be set withallowed_card_presences. Provide an empty value to unset this control.spending_controls.blocked_categories(array of strings, optional) Array of strings containing categories of authorizations to decline. All other categories will be allowed. Cannot be set withallowed_categories.spending_controls.blocked_merchant_countries(array of strings, optional) Array of strings containing representing countries from which authorizations will be declined. Country codes should be ISO 3166 alpha-2 country codes (e.g.US). Cannot be set withallowed_merchant_countries. Provide an empty value to unset this control.spending_controls.spending_limits(array of objects, optional) Limit spending with amount-based rules that apply across this cardholder’s cards.spending_controls.spending_limits.amount(integer, required) Maximum amount allowed to spend per interval.spending_controls.spending_limits.interval(enum, required) Interval (or event) to which the amount applies. Possible enum values:all_timeLimit applies to all transactions.dailyLimit applies to a day, starting at midnight UTC.monthlyLimit applies to a month, starting on the 1st at midnight UTC.per_authorizationLimit applies to each authorization.weeklyLimit applies to a week, starting on Sunday at midnight UTC.yearlyLimit applies to a year, starting on January 1st at midnight UTC.
spending_controls.spending_limits.categories(array of strings, optional) Array of strings containing categories this limit applies to. Omitting this field will apply the limit to all categories.
spending_controls.spending_limits_currency(string, optional) Currency of amounts withinspending_limits. Defaults to your merchant country’s currency.
status(enum, optional) Specifies whether to permit authorizations on this cardholder’s cards. Defaults toactive. Possible enum values:activeA platform has enabled the cardholder to approve authorizations made with cards attached to this cardholder. If Stripe’s review of the cardholder’s identity information isn’t complete, authorizations might be blocked, even if itsstatusisactive.inactiveCards attached to this cardholder will decline all authorizations with acardholder_inactivereason.
type(enum, optional) One ofindividualorcompany. See Choose a cardholder type for more details. Possible enum values:companyThe cardholder is a company or business entity, and additional information includes their tax ID. This option may not be available if your use case only supports individual cardholders.individualThe cardholder is a person, and additional information includes first and last name, date of birth, etc. If you’re issuing Celtic Spend Cards, then Individual cardholders must accept Authorized User Terms prior to activating their card.
curl
curl https://api.stripe.com/v1/issuing/cardholders \
-u "<<YOUR_SECRET_KEY>>" \
-d type=individual \
-d "name=Jenny Rosen" \
--data-urlencode "email=jenny.rosen@example.com" \
--data-urlencode "phone_number=+18888675309" \
-d "billing[address][line1]=1234 Main Street" \
-d "billing[address][city]=San Francisco" \
-d "billing[address][state]=CA" \
-d "billing[address][country]=US" \
-d "billing[address][postal_code]=94111"Response ​
json
{
"id": "ich_1MsKAB2eZvKYlo2C3eZ2BdvK",
"object": "issuing.cardholder",
"billing": {
"address": {
"line1": "1234 Main Street",
"city": "San Francisco",
"state": "CA",
"country": "US",
"postal_code": "94111"
}
},
"company": null,
"created": 1680415995,
"email": "jenny.rosen@example.com",
"individual": null,
"livemode": false,
"metadata": {},
"name": "Jenny Rosen",
"phone_number": "+18888675309",
"redaction": null,
"requirements": {
"disabled_reason": "requirements.past_due",
"past_due": [
"individual.card_issuing.user_terms_acceptance.ip",
"individual.card_issuing.user_terms_acceptance.date",
"individual.first_name",
"individual.last_name"
]
},
"spending_controls": {
"allowed_categories": [],
"blocked_categories": [],
"spending_limits": [],
"spending_limits_currency": null
},
"status": "active",
"type": "individual"
}