Get a list of PrimerVaultedPaymentMethod for the customerId attached to the client session. Build your own UI to display, manage and perform payments with them.

The list of vaulted payment methods is not affected by the checkout builder's conditions. For example, if you configured the checkout builder to not show Paypal with the current client session, but Paypal was vaulted previously, fetchVaultedPaymentMethods will still return it.

The mentioned issue will be addressed and resolved in an upcoming release, improving the overall functionality of the Vault Manager.
1
suspend fun fetchVaultedPaymentMethods(): Result<List<PrimerVaultedPaymentMethod>>
kotlin
copy

Returns

The fetchVaultedPaymentMethods method fetches the vaulted payment methods for the customerId attached to the client session and returns a result object of type Result.

The Result class represents the outcome of the operation, indicating success or failure.

By inspecting the returned Result object, you can determine the success or failure of the fetching of the vaulted payment methods. This allows you to handle different scenarios based on the result.

In case of successful operation result, SDK will return:

PrimerVaultedPaymentMethod
id
String

A temporary identifier for the vaulted payment method. You should use this id with deleteVaultedPaymentMethod, validate and startPaymentFlow.

ℹ️ This id changes with each call to fetchVaultedPaymentMethods.

analyticsId
StringRequired

An identifier for the vaulted payment method that doesn't change across calls to fetchVaultedPaymentMethods.

paymentInstrumentType
StringRequired

The type of the payment instrument associated to the vaulted payment method.

paymentMethodType
StringRequired
A unique string identifier for the payment method.
paymentInstrumentData
PaymentInstrumentDataRequired

Data associated to the payment instrument. You can use this information to display the vaulted payment method in your UI.

Properties
network
String?
The human readable representation of card network (e.g., Visa, Mastercard).
The name of the cardholder.
The first 6 digits of the card number.
The last 4 digits of the card number.
The last 4 digits of the account number.
The expiration month of the card, in 2-digit format.
The expiration year of the card, in 4-digit format.
externalPayerInfo
ExternalPayerInfo?
External information about the payer associated with the transaction.
Properties
email
String
The payer's email address.
The payer's unique ID.
firstName
String?
The payer's given name.
lastName
String?
The payer's given surname.
sessionData
SessionData?
A unique string identifier for the payment method. (e.g. `PAYPAL`, `GOOGLE_PAY`)
binData
BinData?
Additional BIN data.
Properties
network
String?
The card network (e.g., VISA, MASTERCARD, AMEX).
bankName
String?
The name of the bank.
threeDSecureAuthentication
Nullable<ThreeDSAuthenticationData>

In case of unsuccessful operation result, as part of Result object SDK will return:

If an error occurs while fetching vaulted payment methods.

if an I/O error occurs during the API request.

Example

12345678910111213
// 👇  initialize PrimerHeadlessUniversalCheckoutVaultManager after SDK was successfully initializedval vaultManager = PrimerHeadlessUniversalCheckoutVaultManager.newInstance()
private fun fetchVaultedPaymentMethods() {    // 👇 fetch vaulted payment methods by calling suspend function within the scope    scope.launch {        vaultManager.fetchVaultedPaymentMethods().onSuccess { vaultedPaymentMethods ->            // display vaulted payment methods to the user        }.onFailure { throwable ->            // handle error        }    }}
kotlin
copy