Skip to main content

Audience:

Developers

Transition from manual to in-app provisioning

When cardholders start manually adding a card to their digital wallet but don't complete the process (for example, they don't enter the OTP or encounter an error during verification), they can activate the digital card using your app or the Swan app. This way, cardholders don't need to restart the entire provisioning process.

This process is particularly useful for Google Wallet, where cardholders might begin manual provisioning but need assistance completing it.

Before helping a cardholder transition, check whether they completed the manual provisioning process in their digital wallet: a card stuck in Pending status is the sign they didn't.

Retrieve the pending digital card

First, retrieve the digitalCardId of the digital card in Pending status, and verify that the walletId is correctly identified for the pending card.

Retrieving the walletId

Apple Pay doesn't provide access to the walletId for pending tokens; this is a known platform limitation that may affect certain provisioning flows. For Google Pay, which provides better support for retrieving pending card information, make sure you're using the correct filters in your query to identify pending cards.

Open in API Explorer
query GetPendingDigitalCard {
card(cardId: "$YOUR_CARD_ID") {
digitalCards(filters: { walletId: "$YOUR_WALLET_ID", status: "Pending" }) {
edges {
node {
... on PendingDigitalCard {
id
}
}
}
}
}
}

Activate the digital card

Certification required

Contact Swan through the Partner Support Request form available on your Dashboard before integrating activateDigitalCard into your app. This mutation requires Apple Pay or Google Pay certification.

Use the activateDigitalCard mutation to activate the pending digital card:

Open in API Explorer
mutation ActivateDigitalCard {
activateDigitalCard(
input: {
digitalCardId: "$YOUR_DIGITAL_CARD_ID"
}
) {
... on ActivateDigitalCardSuccessPayload {
__typename
digitalCard {
id
statusInfo {
... on DigitalCardEnabledStatusInfo {
__typename
}
}
}
}
... on Rejection {
__typename
message
}
}
}

Implementation notes

  • Manual provisioning: Doesn't require additional app certification.
  • In-app provisioning: Using your app requires a certification process. Use the Partner Support Request form available on your Dashboard to get started.
  • Reference implementation: Swan's Banking app handles this process and can serve as a model for your integration.