TPCSDK
@objcMembers
public final class TPCSDK : NSObject, SdkProtocol
TPCSDK for iOS
-
This is the version of the TPCSDK
Declaration
Swift
public static let tpcsdkVersion: String
-
Reset SDK
Declaration
Swift
public static func reset() -
Configure SDK with
SdkVariantand Issuer ID.Note
Using
SdkVariantand Issuer IDPossible errors:
TPCError.invalidArgumentTPCError.notSupported
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let tpcVariant = SdkVariant.PROD let tpcIssuerId = "TPC_ISSUER" try? TPCSDK.configure(variant: tpcVariant, issuerId: tpcIssuerId) return true }- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for [customization after application launch. SdkVariant tpcVariant = SdkVariantPROD; NSString * tpcIssuerId = @"TPC_ISSUER"; NSError * error; [TPCSDK configureWithVariant:tpcVariant issuerId:tpcIssuerId error:&error]; return YES; }Declaration
Swift
@objc public static func configure(variant: SdkVariant, issuerId: String) throwsParameters
variantUse SdkVariant.PPROD for Pre-Production server and SdkVariant.PROD for Production server.
issuerIdIssuer ID is provided to you during onboarding process.
-
Configure SDK with Server URL and Issuer ID.
Note
Using Server URL and Issuer ID
Possible errors:
TPCError.invalidArgumentTPCError.notSupported
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let tpcServerUrl = "https://hapi.dbp.thalescloud.io/mg/tpc" let tpcIssuerId = "TPC_ISSUER" try? TPCSDK.configure(url: tpcServerUrl, issuerId: tpcIssuerId) return true }- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for [customization after application launch. NSString * tpcServerUrl = @"https://hapi.dbp.thalescloud.io/mg/tpc"; NSString * tpcIssuerId = @"TPC_ISSUER"; NSError * error; [TPCSDK configureWithUrl:tpcServerUrl issuerId:tpcIssuerId error:&error]; return YES; }Declaration
Swift
@objc public static func configure(url: String, issuerId: String) throwsParameters
urlProvide server URL without trailing slash (example: https://hapi.dbp.thalescloud.io).
issuerIdIssuer ID is provided to you during onboarding process.
-
Get card digitization status for local and remote device.
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
Note
Using
FundingCardobject initialized with Card’s Scheme and Encrypted PayloadNote
For AMEX and DISCOVER, it is mandatory to provide
schemeandprimaryAccountNumberSuffix.TPCSDK.getCardDigitizationResult(card: card) { (primaryAccountIdentifier, digitizeDetails, error) in }[TPCSDK getCardDigitizationResultWithCard:card primaryAccountIdentifier:NULL completion:^(NSString * _Nullable primaryAccountIdentifier, CardDigitizationResult * _Nullable digitizeDetails, NSError * _Nullable error) { }];Note
UsingFundingCardobject initialized with Primary Account IdentifierTPCSDK.getCardDigitizationResult(card: card) { (primaryAccountIdentifier, digitizeDetails, error) in }[TPCSDK getCardDigitizationResultWithCard:card primaryAccountIdentifier:NULL completion:^(NSString * _Nullable primaryAccountIdentifier, CardDigitizationResult * _Nullable digitizeDetails, NSError * _Nullable error) { }];Note
Using Primary Account IdentifierTPCSDK.getCardDigitizationResult(primaryAccountIdentifier: cardIdentifier) { (primaryAccountIdentifier, digitizeDetails, error) in }[TPCSDK getCardDigitizationResultWithCard:NULL primaryAccountIdentifier:cardIdentifier completion:^(NSString * _Nullable primaryAccountIdentifier, CardDigitizationResult * _Nullable digitizeResult, NSError * _Nullable error) { }];Declaration
Swift
public static func getCardDigitizationResult(card: FundingCard? = nil, primaryAccountIdentifier: String? = nil, primaryAccountNumberSuffix: String? = nil, completion: @escaping (_ primaryAccountIdentifier: String?, _ digitizeDetails: CardDigitizationResult?, _ error: Error?) -> Void)Parameters
cardFundingCardobject initialized with Card’s Scheme and Encrypted Payload, orFundingCardobject initialized with Primary Account IdentifierprimaryAccountIdentifierPrimary Account Identifier of the payment card
primaryAccountNumberSuffixThe last four or five digits of the card’s number. This field is only used for AMEX/DISCOVER schemes and supported only on iOS 13.4 and above.
completionThe callback invoked when the operation is completed. When it succeeds, it returns digitizeDetails - See
CardDigitizationResultand possible primaryAccountIdentifier. Otherwise, it returns error details. -
Get token for local and remote device.
- Possible errors:
TPCError.deviceEnvironmentUnsafeTPCError.notSupported
Since
2.1.0
Note
Using
GetTokenInputobject initialized with last 4 digits of PANTPCSDK.getToken(input: tokenInput) { (localPass, remotePass, error) in }[TPCSDK getTokenWithInput:tokenInput completion:^(PKPass *_Nullable localPass, PKPass *_Nullable remotePass, NSError *_Nullable error) { }];Declaration
Swift
public static func getToken(input: GetTokenInput, completion: @escaping (_ localPass: PKPass?, _ remotePass: PKPass?, _ error: Error?) -> Void)Parameters
inputSee
GetTokenInputcompletionThe callback invoked when the operation is completed. When it succeeds, it returns a local and remote
PKPass. Otherwise, it returns error details. -
Warning
This API is deprecated as it does not provide information about pending activation and Apple Watch status. Please use getCardDigitizationResult API instead.Check card digitization status with
FundingCardor Primary Account Identifier.- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
Important
Display Add to Apple Wallet button if digitizeResult is
IsCardDigitizedResult.CardNotDigitized.See also
TPCSDK.getCardDigitizationResult(card:completion:)for details of card digitization result on current device or an attached device.Note
Using
FundingCardobject initialized with Card’s Scheme and Encrypted PayloadNote
For AMEX and DISCOVER, it is mandatory to provide
schemeandprimaryAccountNumberSuffix.TPCSDK.isCardDigitized(card: card) { (primaryAccountIdentifier, digitizeResult, error) in switch digitizeResult { case .CardNotDigitized: // TODO: Display Add to Apple Wallet button break default: break } }[TPCSDK isCardDigitizedWithCard:card primaryAccountIdentifier:NULL completion:^(NSString * _Nullable primaryAccountIdentifier, enum IsCardDigitizedResult digitizeResult, NSError * _Nullable error) { switch(digitizeResult) { case IsCardDigitizedResultCardNotDigitized: // TODO: Display Add to Apple Wallet button break; default: break; } }];Note
UsingFundingCardobject initialized with Primary Account IdentifierTPCSDK.isCardDigitized(card: card) { (primaryAccountIdentifier, digitizeResult, error) in switch digitizeResult { case .CardNotDigitized: // TODO: Display Add to Apple Wallet button break default: break } }[TPCSDK isCardDigitizedWithCard:card primaryAccountIdentifier:NULL completion:^(NSString * _Nullable primaryAccountIdentifier, enum IsCardDigitizedResult digitizeResult, NSError * _Nullable error) { switch(digitizeResult) { case IsCardDigitizedResultCardNotDigitized: // TODO: Display Add to Apple Wallet button break; default: break; } }];Note
Using Primary Account IdentifierTPCSDK.isCardDigitized(primaryAccountIdentifier: cardIdentifier) { (digitizeResult, error) in switch digitizeResult { case .CardNotDigitized: // TODO: Display Add to Apple Wallet button break default: // TODO: Hide Add to Apple Wallet button break } }[TPCSDK isCardDigitizedWithCard:NULL primaryAccountIdentifier:cardIdentifier completion:^(NSString * _Nullable primaryAccountIdentifier, enum IsCardDigitizedResult digitizeResult, NSError * _Nullable error) { switch(digitizeResult) { case IsCardDigitizedResultCardNotDigitized: // TODO: Display Add to Apple Wallet button break; default: // TODO: Hide Add to Apple Wallet button break; } }];Declaration
Swift
@available(*, deprecated, message: "This API is deprecated as it does not provide information about pending activation and Apple Watch status. Please use getCardDigitizationResult API instead.") public static func isCardDigitized(card: FundingCard? = nil, primaryAccountIdentifier: String? = nil, primaryAccountNumberSuffix: String? = nil, completion: @escaping (_ primaryAccountIdentifier: String?, _ digitizeResult: IsCardDigitizedResult, _ error: Error?) -> Void)Parameters
cardFundingCardobject initialized with Card’s Scheme and Encrypted Payload, orFundingCardobject initialized with Primary Account IdentifierprimaryAccountIdentifierPrimary Account Identifier of the payment card
primaryAccountNumberSuffixThe last four or five digits of the card’s number. This field is only used for AMEX/DISCOVER schemes and supported only on iOS 13.4 and above.
completionThe callback invoked when the operation is completed. When it succeeds, it returns digitizeResult - See
IsCardDigitizedResultand possible primaryAccountIdentifier. Otherwise, it returns error details. -
provision(fromController:primaryAccountSuffix: cardholderName: scheme: encryptedPayload: authorizationCode: provisionDelegate: ) Displays an interface that lets users add cards to Apple Pay from within your app.
TPCSDK.provision(fromController: self, primaryAccountSuffix: "1234", cardholderName: "John Doe", scheme: CardScheme.Mastercard, encryptedPayload: "PKCS7 encrypted PAN", authorizationCode: "code", provisionDelegate: self)[TPCSDK provisionFromController:self primaryAccountSuffix:@"1234" cardholderName:@"John Doe" scheme:CardSchemeMastercard encryptedPayload:@"PKCS7 encrypted PAN" authorizationCode:@"code" provisionDelegate:self];Declaration
Swift
public static func provision(fromController controller: UIViewController, primaryAccountSuffix: String, cardholderName: String?, scheme: CardScheme, encryptedPayload: String, authorizationCode: String, provisionDelegate: TPCSDKProvisionDelegate? = nil)Parameters
fromControllerThe calling UIViewController
primaryAccountSuffixThe Funding PAN suffix to be displayed is defined within the
primaryAccountSuffixkey. This value should be 4 digits and will have dots prepended to indicate that it is a suffix.cardholderNameThe name of the person as shown on the card
schemeSee
CardSchemeencryptedPayloadCard information encrypted in PKCS7
authorizationCodeAuthorization code
provisionDelegate -
provision(fromController:primaryAccountSuffix: cardholderName: schemeString: encryptedPayload: authorizationCode: productId: primaryAccountIdentifier: provisionDelegate: ) Displays an interface that lets users add cards to Apple Pay from within your app.
Note
In case of Amex or Discover scheme, the SDK can not retrieve
primaryAccountIdentifierfrom the server. You need to use thegetCardDigitizationResultAPI to obtain aCardDigitizationResultobject. If either thelocalPKPassorremotePKPassproperties of theCardDigitizationResultobject are not nil, then access theprimaryAccountIdentifierproperty of thePKSecureElementPassobject. Pass the retrievedprimaryAccountIdentifierto the provision API.TPCSDK.provision(fromController: self, primaryAccountSuffix: "1234", cardholderName: "John Doe", schemeString: "MASTERCARD", encryptedPayload: "PKCS7 encrypted PAN", authorizationCode: "code", productId: "productId", primaryAccountIdentifier: "primaryAccountIdentifier", provisionDelegate: self)[TPCSDK provisionFromController:self primaryAccountSuffix:@"1234" cardholderName:@"John Doe" schemeString:@"MASTERCARD" encryptedPayload:@"PKCS7 encrypted PAN" authorizationCode:@"code" productId:@"productId" primaryAccountIdentifier:@"primaryAccountIdentifier" provisionDelegate:self];Declaration
Swift
public static func provision(fromController controller: UIViewController, primaryAccountSuffix: String, cardholderName: String?, schemeString: String, encryptedPayload: String, authorizationCode: String, productId: String? = nil, primaryAccountIdentifier: String? = nil, provisionDelegate: TPCSDKProvisionDelegate? = nil)Parameters
fromControllerThe calling UIViewController
primaryAccountSuffixThe Funding PAN suffix to be displayed is defined within the
primaryAccountSuffixkey. This value should be 4 digits and will have dots prepended to indicate that it is a suffix.cardholderNameThe name of the person as shown on the card
schemeStringCard’s scheme. Could be
VISA,MASTERCARDor others. NOTE: It has to be UPPERCASE stringencryptedPayloadCard information encrypted in PKCS7
authorizationCodeAuthorization code
productIdUnique identifier of the card product. This data can be retrieved from Bank’s Card Management System. It is only applicable for domestic schemes. Maximum length is 32 characters.
primaryAccountIdentifierAn FPANID for the card. If this parameter is not provided, the SDK will automatically retrieve it from the server for non-Amex/non-Discover schemes. For Amex/Discover schemes, please refer to the
Notesection for additional instructions.provisionDelegate
-
Get pending activation payment pass from local and remote device
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
Note
Using
FundingCardobject initialized with Card’s Scheme and Encrypted PayloadTPCSDK.getPendingActivationPass(card: card) { (pendingActivationPass, error) in }[TPCSDK getPendingActivationPassWithCard:card completion:^(PendingActivationPass * _Nullable pendingActivationPass, NSError * _Nullable error) { }];Declaration
Swift
public static func getPendingActivationPass(card: FundingCard, completion: @escaping (_ pendingActivationPass: PendingActivationPass?, _ error: Error?) -> Void)Parameters
cardSee
FundingCard. UsingFundingCardobject initialized with Card’s Scheme and Encrypted Payload.completionThe callback invoked when the operation is completed. When it succeeds, it returns pendingActivationPass - See
PendingActivationPass. Otherwise, it returns error details. -
Activate payment pass
- Possible errors: This method returns two possible types of errors: TPCError, which is returned from the SDK, and Error, which is returned directly from Apple’s PKPassLibrary.activate.
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverErrorErrorReturns directly fromPKPassLibrary.activate
Note
Use PKPass from
TPCSDK.getPendingActivationPassandFundingCardobject initialized with Card’s Scheme and Encrypted Payload. Authorization code and nonce must be provided.TPCSDK.activatePass(pass: localPass, card: card, authorizationCode: authorizationCode, nonce: nonce) { (success, error) in }[TPCSDK activatePassWithPass:pass card:card authorizationCode:code nonce:nonce completion:^(BOOL success, NSError * _Nullable error) { }];Declaration
Swift
public static func activatePass(pass: PKPass, card: FundingCard, authorizationCode: String, nonce: String?, completion: @escaping (_ success: Bool, _ error: Error?) -> Void)Parameters
passSee
PassKit.PKPasscardSee
FundingCardauthorizationCodeAuthorization code
nonceNonce
completionThe callback invoked when the operation is completed. When it succeeds, the success value is
true. Otherwise, it returns error details.
-
Get Payment Passes from PKPassLibrary
Declaration
Swift
public static func getPaymentPasses(completion: @escaping (_ paymentPasses: [PKPass]?, _ remotePaymentPasses: [PKPaymentPass]?) -> Void) -
Get the list of tokens for the given card
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
TPCSDK.getTokens(card: card) { (tokenList, error) in }[TPCSDK getTokensWithCard:card completion:^(NSArray<Token *> * _Nullable tokenList, NSError * error) { }];Declaration
Swift
public static func getTokens(card: FundingCard, completion: @escaping (_ tokenList: [Token]?, _ error: Error?) -> Void)Parameters
cardSee
FundingCard. UsingFundingCardobject initialized with Card’s Scheme and Encrypted PayloadcompletionThe callback invoked when the operation is completed. When it succeeds, it returns Token list. Otherwise, it returns error details.
-
Get asset for the given token requestor asset ID
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
TPCSDK.getTokenRequestorAsset(assetId: tokenRequestorId) { (tokenRequestorAsset, error) in }[TPCSDK getTokenRequestorAssetWithAssetId:id completion:^(NSArray<TokenRequestorAsset *> * _Nullable tokenRequestorAsset, NSError * error) { }];Declaration
Swift
public static func getTokenRequestorAsset(assetId: String, completion: @escaping (_ tokenRequestorAsset: [TokenRequestorAsset]?, _ error: Error?) -> Void)Parameters
assetIdSee
Token.TokenRequestor.idcompletionThe callback invoked when the operation is completed. When it succeeds, it returns Token Requestor asset. Otherwise, it returns error details.
-
Update token state
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
TPCSDK.updateTokenState(tokenId: tokenId, tokenRequestorId: tokenRequestorId, scheme: scheme authorizationCode: authorizationCode, action: .Suspend) { (success, error) in }[TPCSDK updateTokenStateWithTokenId:tokenId tokenRequestorId:tokenRequestorId scheme:scheme authorizationCode:code action:state completion:^(BOOL success, NSError * error) { }];Declaration
Swift
public static func updateTokenState(tokenId: String, tokenRequestorId: String, scheme: CardScheme, authorizationCode: String, action: TokenState, completion: @escaping (_ success: Bool, _ error: Error?) -> Void)Parameters
tokenIdSee
Token.idtokenRequestorIdUnique identifier of the token requestor allocated by the TSP Scheme. It shall be provided for VISA scheme.
schemeSee
CardSchemeauthorizationCodeAuthorization code provided by issuer.
actionSee
TokenStatecompletionThe callback invoked when the operation is completed. When it succeeds, the success value is
true. Otherwise, it returns error details and the success value isfalse. -
Update token state
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
TPCSDK.updateTokenState(tokenId: tokenId, tokenRequestorId: tokenRequestorId, schemeString: scheme authorizationCode: authorizationCode, action: .Suspend) { (success, error) in }[TPCSDK updateTokenStateWithTokenId:tokenId tokenRequestorId:tokenRequestorId schemeString:scheme authorizationCode:code action:state completion:^(BOOL success, error) { }];Declaration
Swift
public static func updateTokenState(tokenId: String, tokenRequestorId: String, schemeString: String, authorizationCode: String, action: TokenState, completion: @escaping (_ success: Bool, _ error: Error?) -> Void)Parameters
tokenIdSee
Token.idtokenRequestorIdUnique identifier of the token requestor allocated by the TSP Scheme. It shall be provided for VISA scheme.
schemeStringCard’s scheme. Could be
VISA,MASTERCARDor others.authorizationCodeAuthorization code provided by issuer.
actionSee
TokenStatecompletionThe callback invoked when the operation is completed. When it succeeds, the success value is
true. Otherwise, it returns error details and the success value isfalse.
-
Get cards
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
TPCSDK.getCards(userId: userId, authorizationCode: authorizationCode, kyc: kyc) { (cards, error) in }[TPCSDK getCardsWithUserId:userId authorizationCode:code kyc:kyc completion:^(NSArray<CardList *> * _Nullable cardList, NSError * _Nullable error) { }];Declaration
Swift
public static func getCards(userId: String, authorizationCode: String, kyc: String, completion: @escaping (_ cards: [CardList]?, _ error: Error?) -> Void)Parameters
userIdUser ID
authorizationCodeAuthorization code
kycKYC
completionThe callback invoked when the operation is completed. When it succeeds, it returns the card list - See
CardList. Otherwise, it returns error details. -
Get asset for the given card
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
TPCSDK.getCardAsset(cardId: cardId, kyc: kyc, size: .S) { (cardAsset, error) in }[TPCSDK getCardAssetWithCardId:cardId kyc:kyc size:size completion:^(CardAsset * _Nullable cardAsset, NSError * _Nullable error) { }];Declaration
Swift
public static func getCardAsset(cardId: String, kyc: String, size: CardAssetSize, completion: @escaping (_ cardAsset: CardAsset?, _ error: Error?) -> Void)Parameters
cardIdCard ID
kycKYC
sizeSee
CardAssetSizecardAssetSee
CardAssetcompletionThe callback invoked when the operation is completed. When it succeeds, it returns the card asset - See
CardAsset. Otherwise, it returns error details. -
Request encrypted payload for a given funding card
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
TPCSDK.getPayload(authorizationCode: code, cardId: cardId, kyc: kyc) { (payload, error) in }[TPCSDK getPayloadWithAuthorizationCode:code cardId:cardId kyc:kyc completion:^(NSString * _Nullable encryptedPayload, NSError * _Nullable error) { }];Declaration
Swift
public static func getPayload(authorizationCode: String, cardId: String, kyc: String, completion: @escaping (_ payload: String?, _ error: Error?) -> Void)Parameters
authorizationCodeAuthorization code
cardIdCard ID
kycKYC
payloadCard information encrypted in PKCS7
completionThe callback invoked when the operation is completed. When it succeeds, it returns the payload - the Card information encrypted in PKCS7. Otherwise, it returns error details.
-
Request encrypted payload for a given funding card
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
TPCSDK.getEligibleTokenRequestor(card: card, publicKeyIdentifier: publicKeyId) { (TokenRequestorList, error) in }[TPCSDK getEligibleTokenRequestorWithCard:card publicKeyIdentifier:publicKeyId completion:^(NSArray<TokenRequestor *> * _Nullable tokenRequestorList, NSError * _Nullable error) { }];Declaration
Swift
public static func getEligibleTokenRequestor(card: FundingCard, publicKeyIdentifier: String? = nil, completion: @escaping (_ tokenRequestorList: [TokenRequestor]?, _ error: Error?) -> Void)Parameters
cardFundingCardobject initialized with Card’s Scheme and Encrypted PayloadpublicKeyIdentifierIdentifier of the key used to encrypt payload
completionThe callback invoked when the operation is completed. When it succeeds, it returns the list of tokenRequestors - See
TokenRequestor. Otherwise, it returns error details. -
schemePushProvision(card:publicKeyIdentifier: authorizationCode: termsAndConditionsAccepted: callbackUrl: callbackType: pushHandler: completion: ) Initiate push provision to scheme
- Possible errors:
TPCError.notConfiguredTPCError.invalidArgumentTPCError.invalidFormatTPCError.serverError
TPCSDK.schemePushProvision(card: card, publicKeyIdentifier: publicKeyId, authorizationCode: code, termsAndConditionsAccepted: true, callbackUrl: callbackUrl, callbackType: callbackType, pushHandler: pushHandler) { (pushUrl, error) in }[TPCSDK schemePushProvisionWithCard:card publicKeyIdentifier:publicKeyId authorizationCode:code termsAndConditionsAccepted:TRUE callbackUrl:callbackUrl callbackType:callbackType pushHandler:pushHandler completion:^(NSString * _Nullable pushUrl, NSError * _Nullable error) { }];Declaration
Swift
public static func schemePushProvision(card: FundingCard, publicKeyIdentifier: String? = nil, authorizationCode: String, termsAndConditionsAccepted: Bool, callbackUrl: String, callbackType: String, pushHandler: String, completion: @escaping (_ pushUrl: String?, _ error: Error?) -> Void)Parameters
cardFundingCardobject initialized with Card’s Scheme and Encrypted PayloadpublicKeyIdentifierIdentifier of the key used to encrypt payload
authorizationCodeAuthorization code
termsAndConditionsAcceptedTerms and conditions accepted by user
callbackUrlURL used by the token requestor to pass control back to issuer application
callbackTypeANDROID, IOS, or WEB
pushHandlerToken requestor push handler
completionThe callback invoked when the operation is completed. When it succeeds, it returns the pushUrl - a token requestor URL used for redirection. Otherwise, it returns error details.
TPCSDK Class Reference