Create virtual cards with the API
Learn how to create cardholders and issue virtual cards.
You can create virtual cards on Mastercard or Visa (or both) with the Cards API or the Dashboard. Cardholders can use virtual cards instantly after you create them.
Create a cardholder
The Cardholder object represents an individual or business entity that you can issue cards to. Create a Cardholder
with a name to display on cards and the billing address, which is often requested when the cardholder makes online purchases, and is usually the business address of the connected account or your platform.
When you create a cardholder, or update it later, you can include additional information such as a phone_
or email
, which are required for some features like digital wallets. You can also specify preferred_
to customize the cardholder’s language for features like 3D Secure.
Stripe returns a Cardholder
object that contains the information you provided and sends the issuing_
webhook event.
Individual type cardholder requirements
The cardholder type defaults to individual
, but you can set the type to company
if you choose.
You must provide values for the first and last names of individual cardholders, which Stripe screens in accordance with regulatory guidelines. Consider also providing date of birth, which might help reduce watchlist reviews.
Accept authorized user terms
If you’re issuing cards to individuals for programs backed by Celtic Bank (not required for company
type cardholders), you must record acceptance of the Celtic Bank Authorized User Terms before activating a card for that cardholder. See the Required Agreements for Issuing and Treasury for more information about which agreements you’re required to present to accountholders and cardholders.
If applicable, Stripe alerts you to this requirement in the requirements
property of the Cardholder
object:
{ "id": "ich_1MGlTC2eZvKYlo2CJnowP9Z5", "name": "Jenny Rosen", ... "requirements": { "disabled_reason": "requirements.past_due", "past_due": [ "individual.card_issuing.user_terms_acceptance.date", "individual.card_issuing.user_terms_acceptance.ip", ], }, ... }
You can accept the terms on behalf of the Cardholder
by passing in the Unix timestamp of when the cardholder accepted their terms and also their IP address.
When you’ve met the requirements for card activation (such as first and last names, plus proof of user terms acceptance) you can activate cards for them.
Activate the card
In order for authorizations to be approved on a card, its status
must be set to active
. Note that past-due requirements block card activation.
Activate on creation
The card can be activated when creating it using the Dashboard or the API. In the Dashboard, when creating a card, click Activate card. Using the API, set status
to active
when using the create card endpoint.
Activate after creation
Alternatively, after creating an inactive card, the card can be activated using the Dashboard or the API. To activate using the Dashboard, select the card you wish to activate, then click Activate card. To activate using the API, use the update card endpoint to set its status
to active
.
Re-activate after blocking
In some cases, multiple incorrect PIN attempts on a transaction deactivates a card, preventing further authorizations. To reactivate the card, use the Dashboard or the update card API to set the card’s status
to active
.