# Token Management Platform
Integrate MDES, VTS, Apple Pay, Google Pay and other X-pays. Issue and manage card tokens.
# Introduction
Token Management Platform enables a quick implementation of multiple tokenization solutions. It will help you launch your Apple Pay or Google Pay program in maximum 2-3 months at an affordable price.
Key features:
- The platform is integrated with Mastercard MDES and VISA VTS.
- Full certification of Mastercard, VISA, Apple Pay, Google Pay, Samsung Pay, X-Pays.
- Enables all mandatory and optional processes required by payment schemes.
- Simplifies encryption mechanisms required by X-Pays.
- It can be hosted by Verestro in private cloud in EU or on AWS or Azure at any location in the world.
- Full coverage of Apple mandatory requirements and certifications.
- Platform includes Administration Panel for token management.
- Token Connect and MDES-4-Merchants can be included into the project scope.
- Guaranteed implementation time - 3 months.
Please check product overview and technical APIs for more details about the product.
# Overview
Verestro Token Management Platform is a solution created in order to allow much easier connection to Token Service Providers (TSP) - MDES, VTS. That can be used for card „pre-digitization” from all Token requestors with minimum development on . It consists of the following parts:
- Predigitization API - set of processes and requirements that must happen before the payment token becomes ready for use - it will be possible to make payments.
- LifeCycle API - Mastercard or Visa API that TMP connects to in order to manage token life cycle.
- Admin Panel - Administration Panel for creating/fetching reports and managing token life cycle - can be used by Issuer Customer Service.
- PushProvisioning API - allow card issuers the ability to initiate the card provisioning process for Apple/Google Wallet directly from app.
## Benefits for issuing bank or fintech partner
- TMP is created to connect to TSP(MDES/VTS) and enable much easier integration for the Issuer.
- TMP integrates with Token Service Providers (Mastercard MDES, Visa VTS) and provides a single interface for the issuers, so issuers don't have to integrate with both TSP.
- TMP supports various Token Requestors.
- TMP supports different requirements and implementations recommended by Token Requestors.
- TMP has audit and reporting capabilities for the Issuer including Apple Pay reports.
- TMP provides the Token and Card Lifecycle Management API.
- TMP provides Admin Panel.
- TMP supports notifications including reminders for the users.
- TMP supports token requestor based velocity controls.
- TMP supports automated token lifecycle management.
- TMP supports Push Provisioning.
## High Level Overview
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654848100925.png)
### Key components
- Token Management Platform (Server solution) - backend component.
- Wallet Admin Panel - frontend component.
### Architecture
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654848249152.png)
### Pre-digitization
Pre-digitization is a set of processes that allows to a generation of digital payment tokens to enable simpler and secure digital payment experiences. Simply it turns a payment card into a digital token. In this process, Verestro TMP is taking care of all the requirements from Token Requestors.
For this process, the Issuer needs to expose one API method, which will return card verification result or security code verification result.
**Tokenization process**
1\. User enters the card into Apple Pay/Google Pay or another Token Requestor wallet.
2\. TMP receives Authorize Service request from TSP(MDES/VTS) on Pre-digitization API with Card Number, CVC, Exp Date, Device Score, and other tokenization data provided by Token Requestor.
3\. TMP checks device score, number of already active tokens, and velocity controls.
4\. TMP sends a request to Issuer Card Verification API with a Card Number and receives the Card Status, Card ID, User Phone Number, CVC validation Result, Product Category.
5\. TMP returns the decision to TSP (APPROVED/REQUIRE\_ADDITIONAL\_AUTHENTICATION/DECLINED).
**Token activation**
If the decision is APPROVED - token activated instantly after Authorize Service response. Verestro TMP can also notify the issuer if required.
If the decision is REQUIRE\_ADDITIONAL\_AUTHENTICATION - The message will be displayed to the user with activation options (ex. SMS OTP). After the user selects the activation type, TSP will send a DeliverActivationCode to Verestro TMP. Verestro TMP will send the OTP activation code to the user. After the user enters the OTP, TSP activates the token. The token can also be activated manually via the Administration Panel.
If the decision is DECLINE - a token becomes INACTIVE and cannot be activated again.
When a token is activated, Verestro TMP will receive a notifyServiceActivated call from TSP.
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654848303648.png)
#### User authentication
- Green Path - Path without user confirmation (authentication) during the token activation process. The payment token is automatically activated.
- Yellow Path - Path with user confirmation (authentication) during the token activation process. Payment token is activated after correct OTP is provided.
- Orange Path - Path with user confirmation (authentication) during the token activation process. Payment token is activated by the Bank after the user's request via call.
- Red Path - Path when the Issuer rejected activation payment token during the token activation process.
Pre-digitization API Sequence Diagram
@startuml
skinparam ParticipantPadding 30
skinparam BoxPadding 30
skinparam noteFontColor #FFFFFF
skinparam noteBackgroundColor #1C1E3F
skinparam noteBorderColor #1C1E3F
skinparam noteBorderThickness 1
skinparam sequence {
ArrowColor #1C1E3F
ArrowFontColor #1C1E3F
ActorBorderColor #1C1E3F
ActorBackgroundColor #FFFFFF
ActorFontStyle bold
ParticipantBorderColor #1C1E3F
ParticipantBackgroundColor #1C1E3F
ParticipantFontColor #FFFFFF
ParticipantFontStyle bold
LifeLineBackgroundColor #1C1E3F
LifeLineBorderColor #1C1E3F
}
title Green Path
actor User
'comment: actor boundary control entity
User -> "Token Requestor": 1. Tokenize Card
activate "Token Requestor"
"Token Requestor" -> "MDES": 2. AuthorizeService request
activate "MDES"
"MDES" -> "TMP": 3. AuthorizeService request
activate "TMP"
"MDES" <-- "TMP": 4. AuthorizeService response (APPROVED)
"Token Requestor" <-- "MDES": 5. AuthorizeService response (APPROVED)
User <-- "Token Requestor": 6. APPROVED
"MDES" --> "TMP": 7. NotifyServiceActivated
deactivate "TMP"
"MDES" --> "Token Requestor": 8. Service Activated
deactivate "MDES"
"Token Requestor" --> User: 9. Service Activated
deactivate "Token Requestor"
@enduml
@startuml
skinparam ParticipantPadding 30
skinparam BoxPadding 30
skinparam noteFontColor #FFFFFF
skinparam noteBackgroundColor #1C1E3F
skinparam noteBorderColor #1C1E3F
skinparam noteBorderThickness 1
skinparam sequence {
ArrowColor #1C1E3F
ArrowFontColor #1C1E3F
ActorBorderColor #1C1E3F
ActorBackgroundColor #FFFFFF
ActorFontStyle bold
ParticipantBorderColor #1C1E3F
ParticipantBackgroundColor #1C1E3F
ParticipantFontColor #FFFFFF
ParticipantFontStyle bold
LifeLineBackgroundColor #1C1E3F
LifeLineBorderColor #1C1E3F
}
title Yellow Path
actor User
'comment: actor boundary control entity
User -> "Token Requestor": 1. Tokenize Card
activate "Token Requestor"
"Token Requestor" -> "MDES": 2. AuthorizeService request
activate "MDES"
"MDES" -> "TMP": 3. AuthorizeService request
activate "TMP"
"MDES" <-- "TMP": 4. AuthorizeService response (RAA)
"Token Requestor" <-- "MDES": 5. AuthorizeService response (RAA)
User <-- "Token Requestor": 6. Activation Methods
User -> "Token Requestor": 7. Choose Activation Method
"Token Requestor" -> "MDES": 8. Choose Activation Method
"MDES" -> "TMP": 9. DeliverActivationCode
"TMP" --> User: 10. DeliverActivationCode (SMS, EMAIL)
deactivate "TMP"
User -> "Token Requestor": 11. Enter activation code
"Token Requestor" -> "MDES": 12. Validate activation code
"MDES" --> "Token Requestor": 13. Service Activated
deactivate "MDES"
"Token Requestor" --> User: 14. Service Activated
deactivate "Token Requestor"
@enduml
@startuml
skinparam ParticipantPadding 30
skinparam BoxPadding 30
skinparam noteFontColor #FFFFFF
skinparam noteBackgroundColor #1C1E3F
skinparam noteBorderColor #1C1E3F
skinparam noteBorderThickness 1
skinparam sequence {
ArrowColor #1C1E3F
ArrowFontColor #1C1E3F
ActorBorderColor #1C1E3F
ActorBackgroundColor #FFFFFF
ActorFontStyle bold
ParticipantBorderColor #1C1E3F
ParticipantBackgroundColor #1C1E3F
ParticipantFontColor #FFFFFF
ParticipantFontStyle bold
LifeLineBackgroundColor #1C1E3F
LifeLineBorderColor #1C1E3F
}
title Red Path
actor User
'comment: actor boundary control entity
User -> "Token Requestor": 1. Tokenize Card
activate "Token Requestor"
"Token Requestor" -> "MDES": 2. AuthorizeService request
activate "MDES"
"MDES" -> "TMP": 3. AuthorizeService request
activate "TMP"
"MDES" <-- "TMP": 4. AuthorizeService response (DECLINE)
deactivate "TMP"
"Token Requestor" <-- "MDES": 5. AuthorizeService response (DECLINE)
deactivate "MDES"
User <-- "Token Requestor": 6. Decline
deactivate "Token Requestor"
@enduml
Deliver activation code.
This method is called when authorize service returned decision: REQUIRE\_ADDITIONAL\_AUTHNETICATION(Yellow Path). Account Holder needs to verify himself with one of the available activation methods (e.g. OTP code or call to call center). OTP code can be generated by Verestro TMP or TSP(preferred option).
**Verification steps:**
- Verestro TMP sends OTP code via SMS or email (configurable option) to the Account Holder, but there is also possibility to do that by the Issuer, in that case Verestro TMP will notify the Issuer and then Issuer sends it to the Account Holder,
- Account Holder is entering received OTP and TSP or Verestro TMP(configurable) is validating it,
- When OTP code is correct, notifyServiceActivated method is called which means that token is activated and ready to use.
#### MDES Pre-digitization API technical
- OTP code for additional authentication.
- Notifications when a token is activated or deleted.
- Notifications to inactive customers, which didn't perform any transactions after token activation.
- Notifications on abandoned provisioning, when a user didn't finish the full process of token activation.
Jobs.
Verestro TMP can generate/notify or do some other custom task automatically, like:
- Delete inactive tokens after a configured time.
- Generate reports.
- Send notifications.
- Fetch transactions from Customer Service, which can be used for reporting and accessible from administration panel.
Monitoring and Alerting:
- Grafana dashboard with tokenization activity and performance metrics.
- Statistics.
- Error and warning alerting.
Security:
- IP whitelist for API communication.
- Role based access to lifecycle and reporting features.
- VPN tunnel support.
- OAuth when connecting to Issuer API.
# Use Cases
This section is dedicated to describe different use cases of Verestro Token Management Platform.
## Activating a Token
During digitization cardholder have to activate his token by Customer Service. The cardholder calls the Customer Service of their bank to activate the token.
Admin Panel for Verestro TMP which can be used by Issuer Customer Service allows tokens activated e.g. when at the end of the pre-digitalization activities cardholder have to call his bank to complete the activation digital card.
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654849186718.png)
## Updating a Token
The cardholder wants to replace his existing card e.g. existing card expiry date is coming to the end.
Admin Panel for Verestro Token Management Platform which can be used by Issuer Customer Service allows tokens provisioned against that device to be update.
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654849244315.png)
## Deleting a Token
A cardholder notifies their bank that a phone with their tokenized account been lost or stolen. To avoid fraud the cardholder wants to delete all digital cards provisioned into the device wallets.
Admin Panel for Verestro TMP which can be used by Issuer Customer Service allows tokens provisioned against that device to be deactivated preventing further transactions from being performed and therefore preventing fraud.
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654849257588.png)
## Token Suspend by Customer Service
A cardholder notifies their bank that a phone with their tokenized account been lost or stolen.
Admin Panel for Verestro Token Management Platform which can be used by Issuer Customer Service allows tokens provisioned against that device to be suspended preventing further transactions from being performed and therefore strongly reducing the risk of fraud, in case the phone has been stolen.
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654849319677.png)
## Token Unsuspend by Customer Service
Cardholder informs their bank that he finds device (after losing their mobile phone). Cardholder request the bank to resume digital cards related to his mobile phone.
Admin Panel for Verestro TMP which can be used by Issuer Customer Service allows tokens to be unsuspended in case the risk of fraud has been eliminated e.g. the phone has been found.
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654849348887.png)
## Information on status history
There is a suspicion of fraud on one digital card. The Issuer was informed and wants to get more information before make any actions.
Admin Panel for Verestro Token Management Platform which can be used by Issuer Customer Service allows get information and details about tokens and transaction history.
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654849363337.png)
## Searching for information
The cardholder has difficulties with card digitalization. The cardholder calls their bank to get information what is wrong.
Admin Panel for Verestro TMP which can be used by Issuer Customer Service allows to identify the token in question and check the status. Thanks to this the cardholder may be informed what was happened and take actions.
[](https://developer.verestro.com/uploads/images/gallery/2022-06/image-1654849375850.png)
# Technical documentation
# Technical documentation part.1
## Issuer API Specification
@swagger="https://s3.verestro.dev/valinor-public/issuer\_api\_1.3.1.yaml"
# Technical documentation part.2
## TMP API Specification
@swagger="https://s3.verestro.dev/valinor-public/tmp\_api\_1.1.1.yaml"