MeaPushProvisioning

@interface MeaPushProvisioning : NSObject

Provides API for interaction with the MeaPushProvisioning library using class methods.

Configuration

  • Returns payment app instance id.

    Method returns paymentAppInstanceId if it exists or generates a new one.

    Declaration

    Objective-C

    + (NSString *_Nonnull)paymentAppInstanceId;

    Return Value

    Payment app instance id.

  • Loads provided client configuration file.

    Declaration

    Objective-C

    + (void)loadConfig:(NSString *_Nonnull)configFileName;

    Parameters

    configFileName

    File name of the provided client configuration file.

  • Returns hash of the loaded configuration.

    Declaration

    Objective-C

    + (NSString *_Nonnull)configurationHash;

    Return Value

    hash of the loaded configuration or an empty string when configuration is not loaded.

  • Returns version code of the SDK.

    Declaration

    Objective-C

    + (nonnull NSString *)versionCode;

    Return Value

    Version code.

  • Returns version name of the SDK.

    Example: “mpp-test-1.0.0”

    Declaration

    Objective-C

    + (nonnull NSString *)versionName;

    Return Value

    Version name.

  • Switch enable/disable debug logging.

    Declaration

    Objective-C

    + (void)setDebugLoggingEnabled:(BOOL)enabled;

    Parameters

    enabled

    Enable or disable debug logging.

In-App Provisioning

  • Initiate in-app push provisioning with MppCardDataParameters parameter.

    Check if the payment card can be added to Apple Pay by using primaryAccountIdentifier in response.

    Declaration

    Objective-C

    + (void)initializeOemTokenization:
                (MppCardDataParameters *_Nonnull)cardDataParameters
                    completionHandler:
                        (nonnull void (^)(
                            MppInitializeOemTokenizationResponseData *_Nullable,
                            NSError *_Nullable))completionHandler;

    Parameters

    cardDataParameters

    Card data parameters as instance of MppCardDataParameters containing the card information.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • MppInitializeOemTokenizationResponseData *_Nullable data -Initialization response data in case of success
    • NSError *_Nullable error - Error object in case of failure
  • Complete in-app push provisioning. Exchanges Apple certificates and signature with Issuer Host.

    Delegate should implement PKAddPaymentPassViewControllerDelegate protocol to call completeOemTokenization:completionHandler: method, once the data is exchanged PKAddPaymentPassRequest is passed to the handler to add the payment card to Apple Wallet. In the end and delegate method is invoked to inform you if request has succeeded or failed.

    Declaration

    Objective-C

    + (void)completeOemTokenization:
                (MppCompleteOemTokenizationData *_Nonnull)tokenizationData
                  completionHandler:
                      (nonnull void (^)(
                          MppCompleteOemTokenizationResponseData *_Nullable,
                          NSError *_Nullable))completionHandler;

    Parameters

    tokenizationData

    Card data parameters as instance of MppCardDataParameters containing the card information.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • MppCompleteOemTokenizationResponseData *_Nullable data - Completition response data in case of success
    • NSError *_Nullable error - Error object in case of failure
  • Method gets activation data (cryptographic OTP) for the Secure Element pass activation via activateSecureElementPass:withActivationData:completionHandler:

    Declaration

    Objective-C

    + (void)getActivationData:(MppCardDataParameters *_Nonnull)cardDataParameters
            completionHandler:
                (nonnull void (^)(NSString *_Nullable,
                                  NSError *_Nullable))completionHandler;

    Parameters

    cardDataParameters

    Card data parameters as instance of MppCardDataParameters containing the card information.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • NSString *_Nullable activationData - Activation data string in case of success
    • NSError *_Nullable error - Error object in case of failure
  • Activates a Secure Element pass using Activation Data.

    Declaration

    Objective-C

    + (void)
        activateSecureElementPass:(PKSecureElementPass *_Nonnull)secureElementPass
               withActivationData:(NSString *_Nonnull)activationData
                completionHandler:
                    (nonnull void (^)(BOOL, NSError *_Nullable))completionHandler;

    Parameters

    secureElementPass

    The Secure Element pass to activate.

    activationData

    A cryptographic value that the activation process requires as hex string.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • BOOL success - true if the pass activates; otherwise, false
    • NSError *_Nullable error - Error object in case of failure
  • Verify if primaryAccountIdentifier can be used to add payment pass to iPhone Wallet and/or Watch.

    Declaration

    Objective-C

    + (BOOL)canAddSecureElementPassWithPrimaryAccountIdentifier:
        (NSString *_Nonnull)primaryAccountIdentifier;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

    Return Value

    Bool value if payment pass can be added with given primaryAccountIdentifier.

  • Verify if primaryAccountNumberSuffix can be used to add payment pass. Check is specific for iPhone Wallet.

    Declaration

    Objective-C

    + (BOOL)canAddSecureElementPassWithPrimaryAccountNumberSuffix:
        (NSString *_Nonnull)primaryAccountNumberSuffix;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

    Return Value

    Bool value if payment pass can be added with given primaryAccountNumberSuffix.

  • Verify if payment pass exists with primaryAccountIdentifier. Check is specific for iPhone Wallet.

    Declaration

    Objective-C

    + (BOOL)secureElementPassExistsWithPrimaryAccountIdentifier:
        (NSString *_Nonnull)primaryAccountIdentifier;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

    Return Value

    Bool value if payment pass exists with given primaryAccountIdentifier.

  • Verify if remote payment pass exists with primaryAccountIdentifier. Check is specific for Watch. Call when watch is paired.

    Declaration

    Objective-C

    + (BOOL)remoteSecureElementPassExistsWithPrimaryAccountIdentifier:
        (NSString *_Nonnull)primaryAccountIdentifier;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

    Return Value

    Bool value if remote payment pass exists with given primaryAccountIdentifier.

  • Verify if payment pass exists with primaryAccountNumberSuffix. Check is specific for iPhone.

    Declaration

    Objective-C

    + (BOOL)secureElementPassExistsWithPrimaryAccountNumberSuffix:
        (NSString *_Nonnull)primaryAccountNumberSuffix;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

    Return Value

    Bool value if payment pass exists with given primaryAccountNumberSuffix.

  • Verify if remote payment pass exists with primaryAccountNumberSuffix. Check is specific for Watch. Call when watch is paired.

    Declaration

    Objective-C

    + (BOOL)remoteSecureElementPassExistsWithPrimaryAccountNumberSuffix:
        (NSString *_Nonnull)primaryAccountNumberSuffix;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

    Return Value

    Bool value if remote payment pass exists with given primaryAccountNumberSuffix.

  • Returns secure element pass with primaryAccountIdentifier.

    Declaration

    Objective-C

    + (nonnull PKSecureElementPass *)secureElementPassWithPrimaryAccountIdentifier:
        (NSString *_Nonnull)primaryAccountIdentifier;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

    Return Value

    Bool value if remote secure element can be added with given primaryAccountIdentifier. Returns true if Watch is not paired.

  • Returns secure element pass with primaryAccountNumberSuffix.

    Declaration

    Objective-C

    + (nonnull PKSecureElementPass *)
        secureElementPassWithPrimaryAccountNumberSuffix:
            (NSString *_Nonnull)primaryAccountNumberSuffix;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

    Return Value

    Bool value if payment pass can be added with given primaryAccountNumberSuffix. Returns true if Watch is not paired.

  • Returns secure element pass with primaryAccountIdentifier.

    Declaration

    Objective-C

    + (nonnull PKSecureElementPass *)
        remoteSecureElementPassWithPrimaryAccountIdentifier:
            (NSString *_Nonnull)primaryAccountIdentifier;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

    Return Value

    remote secure element pass.

  • Returns remote secure element pass with primaryAccountNumberSuffix.

    Declaration

    Objective-C

    + (nonnull PKSecureElementPass *)
        remoteSecureElementPassWithPrimaryAccountNumberSuffix:
            (NSString *_Nonnull)primaryAccountNumberSuffix;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

    Return Value

    remote secure element pass.

  • Presents a Secure Element pass with Primary Account Identifier.

    Declaration

    Objective-C

    + (void)presentSecureElementPassWithPrimaryAccountIdentifier:
        (NSString *_Nonnull)primaryAccountIdentifier;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

  • Presents a Secure Element pass with PAN Suffix.

    Declaration

    Objective-C

    + (void)presentSecureElementPassWithPrimaryAccountNumberSuffix:
        (NSString *_Nonnull)primaryAccountNumberSuffix;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

  • Checks if Watch is paired.

    Declaration

    Objective-C

    + (void)isWatchPaired:(nonnull void (^)(BOOL))completion;

    Parameters

    completion

    The code block invoked when request is completed. Returns true if Watch is paired.

  • Checks if remote payment pass with primaryAccountIdentifier can be added.

    Declaration

    Objective-C

    + (BOOL)canAddRemoteSecureElementPassWithPrimaryAccountIdentifier:
        (NSString *_Nonnull)primaryAccountIdentifier;

    Return Value

    Bool value if payment pass can be added with given primaryAccountIdentifier. Returns true if Watch is not paired.

  • Checks if remote payment pass with primaryAccountNumberSuffix can be added.

    Declaration

    Objective-C

    + (BOOL)canAddRemoteSecureElementPassWithPrimaryAccountNumberSuffix:
        (NSString *_Nonnull)primaryAccountNumberSuffix;

    Return Value

    Bool value if payment pass can be added with given primaryAccountNumberSuffix. Returns true if Watch is not paired.

  • Checks if remote payment pass with primaryAccountIdentifier can be added.

    Declaration

    Objective-C

    + (void)canAddRemoteSecureElementPassWithPrimaryAccountIdentifier:
                (NSString *_Nonnull)primaryAccountIdentifier
                                                           completion:
                                                               (nonnull void (^)(
                                                                   BOOL))completion;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

    completion

    The code block invoked when request is completed, with Boolean argument set to true if remote payment pass can be added.

  • Checks if remote payment pass with primaryAccountNumberSuffix can be added.

    Declaration

    Objective-C

    + (void)canAddRemoteSecureElementPassWithPrimaryAccountNumberSuffix:
                (NSString *_Nonnull)primaryAccountNumberSuffix
                                                             completion:
                                                                 (nonnull void (^)(
                                                                     BOOL))
                                                                     completion;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

    completion

    The code block invoked when request is completed, with Boolean argument set to true if remote payment pass can be added.

  • Passes in the user’s pass library that the app can access.

    Declaration

    Objective-C

    + (nonnull NSArray<PKPass *> *)passes;

    Return Value

    Passes in the user’s pass library that the app can access.

  • Secure Element passes that PassKit stores on paired devices that the app can access.

    Declaration

    Objective-C

    + (nonnull NSArray<PKSecureElementPass *> *)remoteSecureElementPasses;

    Return Value

    Secure Element passes that PassKit stores on paired devices.

Token Requestor

  • Retrieves eligible Token Requestors which support push provisioning for provided card data.

    Once list of requestors is received, user has an option to select the one to be used.

    Declaration

    Objective-C

    + (void)getTokenRequestors:(MppCardDataParameters *_Nonnull)cardDataParameters
             completionHandler:
                 (nonnull void (^)(MppGetTokenRequestorsResponseData *_Nullable,
                                   NSError *_Nullable))completionHandler;

    Parameters

    cardDataParameters

    Card data parameters as instance of MppCardDataParameters containing the card information to be provisioned by the token requestor.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • MppGetTokenRequestorsResponseData *_Nullable data - Eligible Token Requestors in case of success
    • NSError *_Nullable error - Error object in case of failure
  • Retrieves eligible Token Requestors which support push provisioning for provided card secrets.

    Once list of requestors is received, user has an option to select the one to be used.

    Declaration

    Objective-C

    + (void)getTokenRequestorsWithSecret:(NSArray *_Nonnull)cards
                       completionHandler:
                           (nonnull void (^)(
                               MppGetTokenRequestorsResponseData *_Nullable,
                               NSError *_Nullable))completionHandler;

    Parameters

    cards

    Array of the card secrets to retrieve the eligible token requestors for.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • MppGetTokenRequestorsResponseData *_Nullable data - Eligible Token Requestors in case of success
    • NSError *_Nullable error - Error object in case of failure
  • Retrieves eligible Token Requestors which support push provisioning for provided encrypted PAN.

    Once list of requestors is received, user has an option to select the one to be used.

    Declaration

    Objective-C

    + (void)getTokenRequestorsWithEncryptedPan:(NSString *_Nonnull)encryptedData
                          publicKeyFingerprint:
                              (NSString *_Nonnull)publicKeyFingerprint
                                  encryptedKey:(NSString *_Nonnull)encryptedKey
                                 initialVector:(NSString *_Nonnull)initialVector
                             completionHandler:
                                 (nonnull void (^)(
                                     MppGetTokenRequestorsResponseData *_Nullable,
                                     NSError *_Nullable))completionHandler;

    Parameters

    encryptedData

    Encrypted card data.

    publicKeyFingerprint

    Public Key Fingerprint. Used to recognise the key to be used for AES key decryption.

    encryptedKey

    Encrypted AES key used for encrypted card data.

    initialVector

    Initial Vector used for encrypted card data.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • MppGetTokenRequestorsResponseData *_Nullable data - Eligible Token Requestors in case of success
    • NSError *_Nullable error - Error object in case of failure
  • Retrieves eligible Token Requestors which support push provisioning for provided account ranges.

    Once list of requestors is received, user has an option to select the one to be used.

    Declaration

    Objective-C

    + (void)getTokenRequestorsWithAccountRanges:(NSArray *_Nonnull)accountRanges
                              completionHandler:
                                  (nonnull void (^)(
                                      MppGetTokenRequestorsResponseData *_Nullable,
                                      NSError *_Nullable))completionHandler;

    Parameters

    accountRanges

    Array of the starting numbers of the account ranges to retrieve the eligible token requestors for.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • MppGetTokenRequestorsResponseData *_Nullable tokenRequestors - Eligible Token Requestors in case of success
    • NSError *_Nullable error - Error object in case of failure
  • Pushes particular card data to a selected Token Requestor.

    Token Requestor selection is done from the list of eligible Token Requestors previously returned by getTokenRequestors:completionHandler: method. In response Token Requestor will return a receipt, which needs to be provided to a merchant or any other instance where the card will be digitized in. Receipt can be a deep-link to a bank’s or merchant application, and it can also be a URL to a web page.

    Declaration

    Objective-C

    + (void)
        getTokenizationReceipt:(NSString *_Nonnull)tokenRequestorId
            cardDataParameters:(MppCardDataParameters *_Nonnull)cardDataParameters
             completionHandler:
                 (nonnull void (^)(MppGetTokenizationReceiptResponseData *_Nullable,
                                   NSError *_Nullable))completionHandler;

    Parameters

    tokenRequestorId

    Identifies the Token Requestor, received from getTokenRequestors:completionHandler: method.

    cardDataParameters

    Card data parameters as instance of MppCardDataParameters containing the card information to be provisioned by the token requestor.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • MppGetTokenizationReceiptResponseData *_Nullable data - Tokenization receipt data in case of success
    • NSError *_Nullable error - Error object in case of failure
  • Pushes particular card data to a selected Token Requestor.

    Token Requestor selection is done from the list of eligible Token Requestors previously returned by getTokenRequestors:completionHandler: method. In response Token Requestor will return a receipt, which needs to be provided to a merchant or any other instance where the card will be digitized in. Receipt can be a deep-link to a bank’s or merchant application, and it can also be a URL to a web page.

    Declaration

    Objective-C

    + (void)
        getTokenizationReceipt:(NSString *_Nonnull)tokenRequestorId
            cardDataParameters:(MppCardDataParameters *_Nonnull)cardDataParameters
                        intent:(MppIntent)intent
             completionHandler:
                 (nonnull void (^)(MppGetTokenizationReceiptResponseData *_Nullable,
                                   NSError *_Nullable))completionHandler;

    Parameters

    tokenRequestorId

    Identifies the Token Requestor, received from getTokenRequestors:completionHandler: method.

    cardDataParameters

    Card data parameters as instance of MppCardDataParameters containing the card information to be provisioned by the token requestor.

    intent

    Optional, required for VISA. The intent helps VCEH to determine the relevant user experience. PUSH_PROV_MOBILE, PUSH_PROV_ONFILE - Synchronous flow. Enrollment of card credentials is completed as part of the same session on the same device as issuer and TR. PUSH_PROV_CROSS_USER, PUSH_PROV_CROSS_DEVICE - Asynchronous flow.

    completionHandler

    The code block invoked when request is completed.

    Parameters for the completionHandler:

    • MppGetTokenizationReceiptResponseData *_Nullable data - Tokenization receipt data in case of success
    • NSError *_Nullable error - Error object in case of failure

Deprecated since iOS 13.4

  • Verify if primaryAccountIdentifier can be used to add payment pass to iPhone Wallet and/or Watch.

    Declaration

    Objective-C

    + (BOOL)canAddPaymentPassWithPrimaryAccountIdentifier:
        (NSString *_Nonnull)primaryAccountIdentifier;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

    Return Value

    Bool value if payment pass can be added with given primaryAccountIdentifier.

  • Verify if primaryAccountNumberSuffix can be used to add payment pass. Check is specific for iPhone.

    Declaration

    Objective-C

    + (BOOL)canAddPaymentPassWithPrimaryAccountNumberSuffix:
        (NSString *_Nonnull)primaryAccountNumberSuffix;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

    Return Value

    Bool value if payment pass can be added with given primaryAccountNumberSuffix.

  • Verify if payment pass exists with primaryAccountIdentifier. Check is specific for iPhone.

    Declaration

    Objective-C

    + (BOOL)paymentPassExistsWithPrimaryAccountIdentifier:
        (NSString *_Nonnull)primaryAccountIdentifier;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

    Return Value

    Bool value if payment pass exists with given primaryAccountIdentifier.

  • Verify if remote payment pass exists with primaryAccountIdentifier. Check is specific for Watch. Call when watch is paired.

    Declaration

    Objective-C

    + (BOOL)remotePaymentPassExistsWithPrimaryAccountIdentifier:
        (NSString *_Nonnull)primaryAccountIdentifier;

    Parameters

    primaryAccountIdentifier

    Primary account identifier returned by initializeOemTokenization:completionHandler: method in [MppInitializeOemTokenizationResponseData primaryAccountIdentifier] property.

    Return Value

    Bool value if remote payment pass exists with given primaryAccountIdentifier.

  • Verify if payment pass exists with primaryAccountNumberSuffix. Check is specific for iPhone.

    Declaration

    Objective-C

    + (BOOL)paymentPassExistsWithPrimaryAccountNumberSuffix:
        (NSString *_Nonnull)primaryAccountNumberSuffix;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

    Return Value

    Bool value if payment pass exists with given primaryAccountNumberSuffix.

  • Verify if remote payment pass exists with primaryAccountNumberSuffix. Check is specific for Watch. Call when watch is paired.

    Declaration

    Objective-C

    + (BOOL)remotePaymentPassExistsWithPrimaryAccountNumberSuffix:
        (NSString *_Nonnull)primaryAccountNumberSuffix;

    Parameters

    primaryAccountNumberSuffix

    PAN suffix.

    Return Value

    Bool value if remote payment pass exists with given primaryAccountNumberSuffix.

  • Undocumented

    Declaration

    Objective-C

    + (void)setSdkProperties:(NSDictionary *_Nonnull)properties;