Card Lifecycle
Card Digitization
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.