Create a card ​
Creates an Issuing Card object.
Returns ​
Returns an Issuing Card object if creation succeeds.
Parameters ​
currency(string, required) The currency for the card.type(enum, required) The type of card to issue. Possible values arephysicalorvirtual. Possible enum values:physicalA physical card will be printed and shipped. It can be used at physical terminals.virtualNo physical card will be printed. The card can be used online and can be added to digital wallets.
cardholder(string, required) The Cardholder object with which the card will be associated.exp_month(integer, optional) The desired expiration month (1-12) for this card if specifying a custom expiration date.exp_year(integer, optional) The desired 4-digit expiration year for this card if specifying a custom expiration date.lifecycle_controls(object, optional) Rules that control the lifecycle of this card, such as automatic cancellation. Refer to our documentation for more details.lifecycle_controls.cancel_after(object, required) Cancels the card after the specified conditions are met.lifecycle_controls.cancel_after.payment_count(integer, required) The card is automatically cancelled when it makes this number of non-zero payment authorizations and transactions. The count includes penny authorizations, but doesn’t include non-payment actions, such as authorization advice.
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.personalization_design(string, optional) The personalization design object belonging to this card.pin(object, optional) The desired PIN for this card.pin.encrypted_number(string, optional) The card’s desired new PIN, encrypted under Stripe’s public key.
replacement_for(string, optional) The card this is meant to be a replacement for (if any).replacement_reason(enum, optional) Ifreplacement_foris specified, this should indicate why that card is being replaced. Possible enum values:damagedThe physical card has been damaged and cannot be used at terminals. This reason is only valid for cards of typephysical.expiredThe expiration date has passed or is imminent.lostThe card was lost. This status is only valid if the card it replaces is marked as lost.stolenThe card was stolen. This status is only valid if the card it replaces is marked as stolen.
second_line(string, optional) The second line to print on the card. Max length: 24 characters.shipping(object, optional) The address where the card will be shipped.shipping.address(object, required) The address that the card is shipped to.shipping.address.city(string, required) City, district, suburb, town, or village.shipping.address.country(string, required) Two-letter country code (ISO 3166-1 alpha-2).shipping.address.line1(string, required) Address line 1, such as the street, PO Box, or company name.shipping.address.postal_code(string, required) ZIP or postal code.shipping.address.line2(string, optional) Address line 2, such as the apartment, suite, unit, or building.shipping.address.state(string, optional) State, county, province, or region (ISO 3166-2).
shipping.name(string, required) The name printed on the shipping label when shipping the card.shipping.address_validation(object, optional) Address validation settings.shipping.address_validation.mode(enum, required) The address validation capabilities to use. Possible enum values:disabledThe card will be shipped without validating or normalizing the shipping address.normalization_onlyThe card will be shipped with the normalized address without validation. Undeliverable addresses won’t be blocked.validation_and_normalizationThe card will be shipped with the normalized, validated address. Undeliverable addresses will be blocked.
shipping.customs(object, optional) Customs information for the shipment.shipping.customs.eori_number(string, optional) The Economic Operators Registration and Identification (EORI) number to use for Customs. Required for bulk shipments to Europe.
shipping.phone_number(string, optional) Phone number of the recipient of the shipment.shipping.require_signature(boolean, optional) Whether a signature is required for card delivery.shipping.service(enum, optional) Shipment service. Possible enum values:expressCards arrive in 4 business days.priorityCards arrive in 2-3 business days.standardCards arrive in 5-8 business days.
shipping.type(enum, optional) Packaging options. Possible enum values:bulkCards are grouped and mailed together.individualCards are sent individually in an envelope.
spending_controls(object, optional) Rules that control spending for this card. 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 any cards this card replaced (i.e., itsreplacement_forcard and that card’sreplacement_forcard, up the chain).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.
status(enum, optional) Whether authorizations can be approved on this card. May be blocked from activating cards depending on past-due Cardholder requirements. Defaults toinactive. Possible enum values:activeThe card can approve authorizations. If the card is linked to a cardholder with past-due requirements, you may be unable to change the card’s status to ‘active’.inactiveThe card will decline authorizations with thecard_inactivereason.
curl
curl https://api.stripe.com/v1/issuing/cards \
-u "<<YOUR_SECRET_KEY>>" \
-d cardholder={{CARDHOLDER_ID}} \
-d currency=usd \
-d type=virtualResponse ​
json
{
"id": "ic_1MvSieLkdIwHu7ixn6uuO0Xu",
"object": "issuing.card",
"brand": "Visa",
"cancellation_reason": null,
"cardholder": {
"id": "ich_1MsKAB2eZvKYlo2C3eZ2BdvK",
"object": "issuing.cardholder",
"billing": {
"address": {
"city": "Anytown",
"country": "US",
"line1": "123 Main Street",
"line2": null,
"postal_code": "12345",
"state": "CA"
}
},
"company": null,
"created": 1680415995,
"email": null,
"individual": null,
"livemode": false,
"metadata": {},
"name": "John Doe",
"phone_number": 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"
},
"created": 1681163868,
"currency": "usd",
"exp_month": 8,
"exp_year": 2024,
"last4": "4242",
"livemode": false,
"metadata": {},
"replaced_by": null,
"replacement_for": null,
"replacement_reason": null,
"shipping": null,
"spending_controls": {
"allowed_categories": null,
"blocked_categories": null,
"spending_limits": [],
"spending_limits_currency": null
},
"status": "active",
"type": "virtual",
"wallets": {
"apple_pay": {
"eligible": false,
"ineligible_reason": "missing_cardholder_contact"
},
"google_pay": {
"eligible": false,
"ineligible_reason": "missing_cardholder_contact"
},
"primary_account_identifier": null
}
}