Activate a card
Last updated: September 30, 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:
You can also schedule a card's activation for a future date or time, instead of activating it immediately.
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
To show the cardholder their card's personal identification number (PIN) in your mobile app, use the Android or iOS Card Management SDK. You can also 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.
- On the Card details page, select Activate card.
Call the Activate a card endpoint. Provide the card ID, prefixed with crd_, as the {cardId} path parameter.
Alternatively, use the Update card details endpoint to update the card status.
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"last_activated_on": "2019-09-10T10:11:12Z",3"_links": {4"self": {5"href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq242dcd6fdn5gifcq1491"6},7"revoke": {8"href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq242dcd6fdn5gifcq1491/revoke"9},10"suspend": {11"href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq242dcd6fdn5gifcq1491/suspend"12},13"controls": {14"href": "https://{prefix}.api.checkout.com/issuing/controls?target_id=crd_fa6psq242dcd6fdn5gifcq1491",15"actions": ["GET"],16"types": ["application/json"]17}18}19}
After you integrate the Card Management Android SDK or iOS SDK, you can activate cards in your mobile app.
Note
To activate cards in your app, 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.
Note
The getCards() method throws a CardManagementError that you must catch. For example, use catch, as shown in the following example, or runCatching.
Call the getCards() method to get all the cardholder's cards, or getCard(cardId) to get a specific card:
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 integrate the Card Management Web SDK, you can activate cards on your website or web app.
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 revoked, the call fails with an INVALID_CARD_STATE error.
Note
Make sure you pass a cardholder access token to activateCard(). The method does not accept 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, you receive an error object that contains a code and a message. If you receive a NETWORK_ERROR, the card might already be active. Call getCardDetails() to confirm the card's status before you retry. For the full list of codes, see Handle errors.
Instead of activating a card immediately, you can schedule it to activate at a future date or time. Checkout.com activates the card at the scheduled time, without any further action from you or the cardholder.
To schedule a card's activation, set the scheduled_activation_date field when you call one of the following endpoints:
- Create a card
- Update card details – You can also use this endpoint to reschedule a card's existing activation date.
The scheduled_activation_date value must be in the future, and use one of the following ISO 8601 formats:
- Date only –
YYYY-MM-DD. The card activates at midnight (00:00) UTC. - Date and time –
YYYY-MM-DDTHH:mmZfor UTC, orYYYY-MM-DDTHH:mm±HH:mmwith a UTC offset.
If you include a time, it must be:
- On the hour
- At least one hour later than the time you send the request
For example, if you send the request at 14:35, you can set the activation time to 16:00, 17:00, and so on.
Note
You cannot set "activate_card": true and provide scheduled_activation_date in the same Create a card request. If you do, the request returns an error.
You can activate a card before its scheduled activation date using any of the other methods on this page. We activate the card immediately and clear its scheduled activation date.
To cancel a scheduled activation, call the Update card details endpoint and set scheduled_activation_date to null.
To receive webhooks when a physical or digital card's activation status changes:
- Configure your webhook server.
- Subscribe to the following webhooks: