Skip to main content

How Push Provisioning works

Introduction

Push Provisioning allows cardholders to add their cards to a digital wallet directly from your app, streamlining the process and enhancing the user experience. Here’s how it works:

  1. User Initiates the Process
    The cardholder selects the “Add to Wallet” option within your app. This triggers the Push Provisioning workflow.

  2. Card Tokenisation
    The card details are securely tokenized by Weavr. Tokenization replaces sensitive card information with a unique identifier (token) that can be safely used for transactions by the different parties involved.

  3. Secure Communication with Wallet Providers
    The tokenized card data is sent to the respective digital wallet provider (i.e. Apple Pay or Google Pay) through a secure channel.

  4. Verification and Approval
    The wallet provider verifies the tokenized data with the card issuer or network. This step ensures the card is valid and authorised for provisioning.

  5. Card Added to Wallet
    Upon successful verification, the card is added to the digital wallet, ready for use in contactless payments or online transactions.

By integrating Push Provisioning into your app using Weavr’s Mobile SDK, you can offer a seamless and secure way for users to add their cards to digital wallets, reducing friction and improving the overall user experience.

Implementation overview

You need the following requisites before you can call the SDK to provision a card:

  • Your app allow-listed by Token Service Providers (TSPs) and Digital Wallets.
  • An access token (representing the user's identity).
  • The card data.
  • The card artwork, which needs to comply with the following rules:
    • Be either vector PDF (recommended) or a raster PNG file
    • Have a resolution of 1536 x 969
    • Size no larger than 4 MB
    • Have square (not rounded) corners
    • Exclude elements that are only relevant for physical cards (such as the card number, hologram, chip)
    • Must be in landscape orientation
    • Contactless indicator may be added (indicating NFC payments can be made).
  • The status of the card within the digital wallet.

Please note that the specific SDK methods to achieve the journey outlined below are platform dependent. There are specific implementation guides for Android, iOS and ReactNative.

Authenticating your user

The first pre-requisite to provision a card from your app is to have a valid access token of a logged-in user to authenticate your user within the system.

You can obtain an access token via POST /login_with_password in conjunction with the appropriate UI component or the mobile login component; or via the mobile Biometric Authentication Component.

Fetching card data

Next, you need the card data to provision it in your frontend. This data can be fetched via the GET /managed_cards endpoint.

note

You must ensure the card can be provisioned by checking the properties within the digitalWallets key:

  • pushProvisioningEnabled and walletsEnabled true.
  • artworkReference has an appropriately approved code (e.g. XXX001).

You must provide the card artwork either as a URL that the SDK can download, or as a default image that all cards use.

From the data received, you'll need to pass the following properties to the SDK during the provisioning flow:

  • Card id.
  • Card friendlyName as the card description.
  • cardNumberLastFour as the card's last four digits.
  • nameOnCard as the card holder's name.

Check if the card can be added to the digital wallet

Before proceeding with provisioning the card, you need to confirm, via getCardStatus that the card is in a valid state to be provisioned.

If it is not, you should hide the Add to Wallet button, and display to the user that the card has already been added.

tip

The brand guidelines for Apple and Google wallets are both quite strict. Please make sure you follow the platform documentation closely to avoid having your app rejected during app reviews.

Additionally, each platform has its own nuances regarding card states, please refer to the platform documentation for more details.

Triggering the provisioning process

Once you have the relevant data, and you have checked that the card can be provisioned, you may display the Add to Wallet button to the user.

Upon interaction, the button triggers the provisioning flow: