Repository navigation
Android Google Pay SDK 1.0.0
This release adds more Google Pay configuration, inline merchant authorisation, and richer payment result data. It also establishes the first stable Android API boundary.
Added
- Accept amounts in minor units with
Amount.ofMinorUnits. - Configure billing address, phone number, and payer email collection.
- Authorise or reject payments while the Google Pay sheet remains open.
- Configure supported card networks and authentication methods.
- Configure whether to accept credit and prepaid cards.
- Require an existing eligible payment method during availability checks.
- Configure checkout options, transaction IDs, total-price status, and display-item types.
- Request and return Google Pay assurance details.
- Return payment method type, display name, and last four digits.
- Support INTERAC cards.
- Report payment cancellation through
PaymentState.Cancelled.
Improved
- The payment button becomes available again after cancellation or failure.
- Google Pay launch and resolution failures now emit
PaymentState.Errorinstead of only being logged. - Missing billing-address data is treated as expected when billing collection is disabled, rather than logged as a parsing error.
Breaking changes
Review these changes before upgrading:
- Billing addresses are no longer collected by default. Set
billingAddress = BillingAddressConfig.Enabled()if you need billing data for AVS or fraud checks. Amount("54.99")still works in Kotlin, butAmount.amountand the direct Java constructor are no longer available. UseAmount.ofMinorUnits(5499)for amounts stored in minor units.- Decimal amount strings now throw
IllegalArgumentExceptionif they contain a sign, thousands separator, whitespace, or more than two fractional digits. - Closing the Google Pay sheet now emits
PaymentState.Cancelledinstead of leaving the state atPaymentState.Available. Apps that render the payment button only forAvailablemust also handleCancelled. EvervaultPayViewModel.getMerchantName()andcreatePaymentRequest()now throw when merchant lookup or response parsing fails. They no longer updatePaymentState.Errorfor these failures.- The default total label changed from
TotaltoPay {merchantName}. SetpriceLabel = "Total"to retain the previous label. - The default payment button radius changed from
100.dpto12.dp. Passradius = 100.dpto retain the previous pill shape. - INTERAC is now included in the default supported networks. Provide an explicit
supportedNetworkslist to retain the previous set.
Upgrade notes
- Kotlin 2.1 or later is required. Kotlin 2.0 cannot read the library's Kotlin 2.2 metadata.
- Rebuild applications and dependent modules against this version because generated JVM signatures changed.
- The merged application manifest now contains
EvervaultPaymentDataCallbacksService. Google Pay protects this exported service with thecom.google.android.gms.permission.BIND_PAYMENTS_CALLBACK_SERVICEsignature permission.