# paymentAttemptId

val paymentAttemptId: String?

A unique identifier for the payment attempted with PaymentManager.startPaymentActivity. When provided, Mobile Payments SDK generates a unique idempotency key for the payment request and stores it with the payment attempt ID. If multiple payment requests are made for the same payment attempt (e.g. due to Strong Customer Authentication (SCA) requirements in Europe), the SDK generates a new idempotency key for each request and replaces the stored idempotency key for the payment attempt ID.

To retrieve the final idempotency key used in a payment attempt, refer to PaymentManager.getIdempotencyKey.

Using paymentAttemptId is the recommended way (over idempotencyKey) to handle idempotent payment requests in Mobile Payments SDK. This field and idempotencyKey are mutually exclusive, but at least one must be provided in your PaymentParameters. If both or neither are provided, an IllegalArgumentException is thrown.