Activate a card
Last updated: September 9, 2026
You must activate the following cards before the cardholder can perform transactions:
- Newly created physical cards
- Virtual cards created using the API with
"activate_card": false - Suspended cards
You can activate cards using:
The cardholder can activate the card in the following ways:
- Performing their first Chip and PIN transaction at a point of sale (PoS) – This also enables the card for contactless payments.
- Withdrawing cash from an ATM
The cardholder can access the card's personal identification number (PIN) in your mobile app, using the Android or iOS Card Management SDK. Alternatively, you can send them the PIN by mail.
Note
Cardholders cannot make contactless payments until after they perform a Chip and PIN transaction, even if the card is already active.
You must have one of the following user roles:
- Admin
- Support manager
- A custom role with the
Create and edit cards and cardholders; Simulate transactionspermission
- Sign in to the Dashboard.
- Go to Issuing > Cards.
- Select the card you want to activate.
- In the Card details page, select Activate card.
Call the Activate a card endpoint, and provide the card ID prefixed with crd_ as the {cardId} path parameter.
Information
Your base URL's {prefix} value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see API endpoints.
post
https://{prefix}.api.checkout.com/issuing/cards/{cardId}/activate
1{2"_links": {3"self": {4"href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq242dcd6fdn5gifcq1491"5},6"revoke": {7"href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq242dcd6fdn5gifcq1491/revoke"8},9"suspend": {10"href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq242dcd6fdn5gifcq1491/suspend"11}12}13}
After you've integrated the Card Management Android SDK or iOS SDK, you can activate your cardholder's cards in your mobile app.
Note
You must migrate to Android SDK version 3.0.0 or iOS SDK version 4.0.0. For guidance on how to update your integration, see Support – Issuing Card Management SDKs migration guide.
Call the getCards() method to get all the cardholder's cards, or getCard(cardId) to get a specific card:
Note
The getCards() method throws a CardManagementError that you must catch. For example, using catch (as in the example) or runCatching.
1// Call coroutineBased getCards in the context of a coroutineScope2try {3// Get all the cardholder's cards4cardManager.getCards(statuses = setOf(CardState.ACTIVE, CardState.REVOKED))56// Get a specific card7cardManager.getCard(cardId: "<cardId>")8} catch (e: CardManagementError) {9when (error) {10is CardManagementError.Unauthenticated -> // Prompt login11is CardManagementError.ConnectionIssue -> // Show network error12else -> // Handle other errors13}14}
Read the Card.possibleStateChanges property to get the statuses you can change the card to:
1// Returns a list of possible statuses you can change the card to2val possibleNewStates = card.possibleStateChanges34// You can activate the card if the status was returned by possibleStateChanges5if (possibleNewStates.contains(CardState.ACTIVE)) {6<coroutineScope> {7val result = card.activate()8handleCardStateTransition(result)9}10}
Complete the change to active status:
1fun cardStateChangeCompletionHandler(result: Result<Unit>): Unit {2result3.onSuccess {4// The card status is successfully updated and reflected by both the back end and the SDK5}.onFailure {6// If something goes wrong, you receive an error with more details7}8}
After you've integrated the Card Management Web SDK, you can activate your cardholder's cards on your website or web application.
Initialize the SDK with your public API key:
1const sdk = new window.CheckoutCardManagement(<PUBLIC_API_KEY>);
Call the activateCard() method with the card ID prefixed with crd_, and a cardholder access token. If the card is already active, or has been revoked, the call fails with an INVALID_CARD_STATE error.
Note
activateCard() takes a cardholder access token, not the single-use payment token.
1try {2const result = await sdk.activateCard('crd_fa6psq242dcd6fdn5gifcq1491', 'cardholderAccessToken');34console.log(result.cardId); // 'crd_fa6psq242dcd6fdn5gifcq1491'5console.log(result.status); // 'active'6console.log(result.activatedAt); // ISO 8601 timestamp7} catch (error) {8console.error(error.code, error.message);9}
If the request fails, the SDK rejects with an error object containing a code and a message. If you receive a NETWORK_ERROR, the activation might still have been applied, so call getCardDetails() to confirm the card's status before you retry. For the full list of codes, see Handle errors.
You can receive webhooks when a card is activated:
- Configure your webhook server.
- Subscribe to the following webhooks: