Activate a card
Last updated: January 28, 2026
The following cards must be activated 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 via mail.
Note
Cardholders cannot make contactless payments until after they perform a Chip and PIN transaction, even if the card is already successfully activated.
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_fa6psq42dcdd6fdn5gifcq1491"5},6"revoke": {7"href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/revoke"8},9"suspend": {10"href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/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 getCards(cardId) to get a specific card:
Note
The getCards() method throws a CardManagementError which 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}
Call the Card.possibleStateChanges() method to request the possible 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}
You can set up webhooks to be notified when cards are activated: