Skip to content

Android Google Pay SDK 1.0.0

Latest

Choose a tag to compare

@maxharrison maxharrison released this 04 Sep 13:21
a9a3806

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.Error instead 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, but Amount.amount and the direct Java constructor are no longer available. Use Amount.ofMinorUnits(5499) for amounts stored in minor units.
  • Decimal amount strings now throw IllegalArgumentException if they contain a sign, thousands separator, whitespace, or more than two fractional digits.
  • Closing the Google Pay sheet now emits PaymentState.Cancelled instead of leaving the state at PaymentState.Available. Apps that render the payment button only for Available must also handle Cancelled.
  • EvervaultPayViewModel.getMerchantName() and createPaymentRequest() now throw when merchant lookup or response parsing fails. They no longer update PaymentState.Error for these failures.
  • The default total label changed from Total to Pay {merchantName}. Set priceLabel = "Total" to retain the previous label.
  • The default payment button radius changed from 100.dp to 12.dp. Pass radius = 100.dp to retain the previous pill shape.
  • INTERAC is now included in the default supported networks. Provide an explicit supportedNetworks list 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 the com.google.android.gms.permission.BIND_PAYMENTS_CALLBACK_SERVICE signature permission.