Skip to main content

Card Lifecycle

Card Digitization

Card digitization flow diagram

Card States

The following card lifecycle states exist in MTP:

One can retrieve the current state of a card in MTP by using the MeaCard.getState() method.

When a card is first created after successful call to MeaTokenPlatform.initializeDigitization() it's state is set to DIGITIZATION_STARTED. If the MeaTokenPlatform.completeDigitization() method call returns SUCCESS ("Green Path"), card state will then change to DIGITIZED.

However, if additional authentication is required to complete digitization ("Yellow Path"), the card will have additional state MeaCardYellowPathState.AUTHENTICATION_INITIALIZED and it will be set to REQUIRE_ADDITIONAL_AUTHENTICATION, then to AUTHENTICATION_INITIALIZED when initializeAuthentication() completes successfully, and finally to AUTHENTICATION_COMPLETE when completeAuthentication() completes. "Yellow Path" state of the card can be retrieved using MeaCard.getYellowPathState() method.

After digitization is complete, the card profile is provisioned via a push message, and card state changes to PROVISIONED. If an error occurs during card provision, then card state will change to PROVISION_FAILED instead.

Card states ACTIVE, SUSPENDED and DEACTIVATED are managed by CMS-D and updated only through push notifications. The card state changes to ACTIVE when a push message is received to activate the card - normally that should happen immediately after a successful card provision. In case of Yellow Path flow to became ACTIVE it is required that also card Additional Authentication flow is completed. In the ACTIVE state the card is ready for payments. Cards can also be suspended or deactivated by CMS-D. In the SUSPENDED state, a card cannot be used for transactions, but it can be re-activated again. In the DEACTIVATED state, the card is permanently deactivated, but it is not deleted automatically by the SDK.

Finally, one can mark cards for deletion using methods meaCard.markForDeletion(MeaCardListener) or meaCard.delete(MeaCardListener), which will update the card state to MARKED_FOR_DELETION and schedule the card deletion job.

Card lifecycle state diagram