Managing Cards Invite Only

    Use Stripe's API and your server-side code to update issued cards and keep track of card activity.

    You can manage issued cards using the API or the Dashboard. You can update the cardholder’s billing name and address, cancel or replace cards, retrieve virtual card details to use directly or provide to your cardholders, and keep track of activity using webhooks.

    Deactivating or canceling cards

    You can deactivate cards or cancel them to prevent them from being used. You can also reactivate a deactivated card, but a canceled card cannot be activated again. To replace a canceled card, you must create a new card for the cardholder.

    To deactivate a card, update the card and change its status to inactive. To cancel a card, change its status to one of canceled, lost, or stolen.

    curl https://api.stripe.com/v1/issuing/cards/ic_1Cm3paIyNTgGDVfzBqq1uqxR \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d status=inactive
    # Set your secret key: remember to change this to your live secret key in production # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' Stripe::Issuing::Card.update( 'ic_1Cm3paIyNTgGDVfzBqq1uqxR', { status: 'inactive', } )
    # Set your secret key: remember to change this to your live secret key in production # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' stripe.issuing.Card.modify( 'ic_1Cm3paIyNTgGDVfzBqq1uqxR', status='inactive' )
    // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); \Stripe\Issuing\Card::modify( 'ic_1Cm3paIyNTgGDVfzBqq1uqxR', [ 'status' => 'inactive', ] );
    // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; Card card = Card.retrieve("ic_1Cm3paIyNTgGDVfzBqq1uqxR"); Map<String, Object> params = new HashMap<>(); params.put("status", "inactive"); card.update(params);
    // Set your secret key: remember to change this 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 card = stripe.issuing.cards.update('ic_1CoYuRKEl2ztzE5GIEDjQiUI', { status: 'inactive', });
    // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" card, err := card.Update("ic_1CoYuRKEl2ztzE5GIEDjQiUI", &stripe.IssuingCardParams{ Status: stripe.String(string(stripe.IssuingCardStatusInactive)), })
    // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options = new CardUpdateOptions { Status = "inactive", }; var service = new CardService(); Card card = service.Update("ic_1CoYuRKEl2ztzE5GIEDjQiUI", options);

    You can activate a deactivated card by updating its status to active. You can also activate or deactivate cards in the Dashboard. To deactivate a card, select the card and then click Deactivate card. To activate a card, select the card and then click Activate card.

    After a card has expired, its status automatically transitions to canceled (and you will be notified of this with an issuing_card.updated webhook). A new card must be issued to the cardholder for them to continue making purchases.

    Replacing lost, stolen, damaged, or expiring cards

    When cards are lost, stolen, damaged, or about to expire, you can order replacements for them using the API by creating a new card and passing the replacement_for and replacement_reason parameters. Specifying these parameters helps reduce fraud and provides a better cardholder experience — cards that are replaced due to damage or expiration will be replaced by a card with the same number in most, but not all, cases.

    To replace a card:

    1. If the card you’re replacing is lost or stolen, first update its status to lost or stolen to disable any further charges.
    2. Create a new card, passing the replacement_for and replacement_reason parameters.
    3. When it’s time to activate the new card, make sure the status on the card being replaced is set to one of lost, stolen or canceled. If the previous card was not lost or stolen, update its status to canceled.
    4. Activate the new card by updating its status to active.

    Retrieving virtual card information

    You can retrieve virtual card details using the API. Virtual card information includes the Card object containing the cardholder’s billing name and address, along with the card’s expiration date, number, and cvc attributes.

    curl https://api.stripe.com/v1/issuing/cards/ic_1Cm3paIyNTgGDVfzBqq1uqxR/details \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc:
    # Set your secret key: remember to change this to your live secret key in production # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' card_details = Stripe::Issuing::Card.details('ic_1Cm3paIyNTgGDVfzBqq1uqxR')
    # Set your secret key: remember to change this to your live secret key in production # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' card_details = stripe.issuing.Card.details('ic_1Cm3paIyNTgGDVfzBqq1uqxR')
    // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); $card = \Stripe\Issuing\Card::retrieve('ic_1Cm3paIyNTgGDVfzBqq1uqxR'); $details = $card->details();
    // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; Card card = Card.retrieve("ic_1Cm3paIyNTgGDVfzBqq1uqxR");
    // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); stripe.issuing.cards.retrieveDetails( 'ic_1CoYuRKEl2ztzE5GIEDjQiUI', function (err, details) { // asynchronously called } );
    // Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" details, err := Get("ic_1CoYuRKEl2ztzE5GIEDjQiUI", nil)
    // Set your secret key: remember to change this 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 CardService(); CardDetails details = service.Details("ic_1CoYuRKEl2ztzE5GIEDjQiUI")
    { "object": "issuing.card_details", "card": { "id": "ic_1Cm3paIyNTgGDVfzBqq1uqxR", "object": "issuing.card", "authorization_controls": { "allowed_categories": null, "blocked_categories": null, "currency": "usd", "max_amount": 10000,
    See all 61 lines "max_approvals": 1 }, "billing": { "address": { "city": "San Francisco", "country": "US", "line1": "1234 Main Street", "postal_code": "94111", "state": "CA" } }, "brand": "Visa", "cardholder": { "id": "ich_1Cm3pZIyNTgGDVfzI83rasFP", "object": "issuing.cardholder", "billing": { "address": { "city": "San Francisco", "country": "US", "line1": "1234 Main Street", "postal_code": "94111", "state": "CA" } "name": "Jenny Rosen" }, "created": 1531159885, "email": "jenny.rosen@example.com", "livemode": false, "metadata": { }, "name": "Jenny Rosen", "phone_number": "+18008675309", "status": "active", "type": "individual" }, "created": 1531159886, "currency": "usd", "exp_month": 8, "exp_year": 2019, "last4": "4242", "livemode": false, "metadata": { }, "name": "Jenny Rosen", "shipping": null, "status": "active", "type": "physical" }, "cvc": "123", "number": "4242424242424242" }

    Tracking events with webhooks

    Stripe sends the issuing_card.created and issuing_card.updated webhook events to notify you whenever a card is created or updated.

    You can also review the details of card events when viewing a card in the Dashboard.

    Was this page helpful?

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.

    On this page