- Bump braintree_android module dependency versions to
4.49.1
- Bump braintree_android module dependency versions to
4.45.0
- Fixes Google Play Store Rejection
- Add
hasUserLocationConsent
property toDropInRequest
- Deprecate existing constructor that does not pass in
hasUserLocationConsent
- Add
- Refresh vaulted payment methods list after 3DS is canceled (fixes #455)
- Bump braintree_android module dependency versions to
4.41.0
- Bump braintree_android module dependency versions to
4.40.1
- Fix NPE when
DropInListener
is null
- Bump braintree_android module dependency versions to
4.38.2
- Android 14 Support
- Upgrade
compileSdkVersion
andtargetSdkVersion
to API 34
- Upgrade
- Add
customUrlScheme
property toDropInRequest
to allow for custom URL schemes to be set for browser-based flow deep links
- Add
PaymentMethodClient
with APIgetPaymentMethodNonces
anddeletePaymentMethod
- Bump braintree_android module dependency versions to
4.37.0
- Reset bundle arguments for AddCardFragment after prefill card text is applied to Card Form (fixes #429)
- Add California Privacy Laws notice of collection to credit card form
- Add
DropInRequest.setCardLogosDisabled()
to hide card logos on the credit card form if desired
- Bump braintree_android module dependency versions to
4.33.0
- Prevent Google Pay from launching twice when double tapped
- Bump braintree_android module dependency versions to
4.27.0
- Dismiss keyboard and submit form on Card Details when form is complete and
Enter
is pressed - Fix bug where payment methods can be selected multiple times
- Bump braintree_android module dependency versions to
4.26.0
- Fix issue that causes the DropIn UI to hang when a duplicate payment method is entered and user returns to Bottom Sheet view (fixes #370)
- Bump braintree_android module dependency versions to
4.23.1
- Bump braintree_android module dependency versions to
4.23.0
- Fix issue that caused Add Card button to attempt tokenization multiple times when double tapped.
- Add
DropInClient#invalidateClientToken()
method (fixes #367) - Bump braintree_android module dependency versions to
4.20.0
(fixes #371)
- Bump braintree_android module dependency versions to
4.19.0
- Notify merchant via error message the payment method is duplicated (fixes #357)
- Android 13 Support
- Upgrade
targetSdkVersion
andcompileSdkVersion
to API 33 - Collect device data for Card payments that aren't using 3D Secure (fixes #364)
- Deprecate constructors that require a
DropInRequest
. - Add DropInClient#launchDropIn(DropInRequest) method.
- Check if BottomSheetFragment is visible using Android Fragment API (fixes #348)
- Fix issue where
UserCanceledException
was not being sent on bottom sheet dismissal (fixes #346) - Bump braintree_android module dependency versions to
4.12.0
- Add
launchDropIn()
method - Deprecate
launchDropInForResult(Activity, Int)
in favor oflaunchDropIn()
method
- Update Vault Manager inline documentation
- Add
ClientTokenProvider
interface for asynchronously fetching client token authorization - Add new
DropInClient
constructors that acceptClientTokenProvider
or tokenization key string - Deprecate
DropInClient
constructor that acceptsContext
in favor of new constructors - Bump braintree_android module dependency versions to
4.10.1
- Bump
card-form
to5.4.0
- Bump braintree_android module dependency versions to
4.8.1
- Check if
BottomSheetPresenter
is null before unbinding inBottomSheetFragment
(fixes #319)
- Bump braintree_android module dependency versions to
4.7.0
- Bump
card-form
to5.3.0
- Localization
- Add support for Czech, Greek, Finnish, Hebrew, Hungrian, and Slovak localization
- Venmo
- Add
VenmoRequest
setter toDropInRequest
- Don't show Venmo payment method option when Venmo not installed on device
- Add
- CardForm
- Focus Cardholder Name field when adding card details if field not disabled (fixes #180)
- DropInRequest
- Set explicit class loader for
DropInRequest
(fixes #191) - Wrap
DropInRequest
in Parcelable bundle (fixes #228)
- Set explicit class loader for
- Accessibility
- Increase color contrast and add content descriptions for screen readers
- Breaking Changes
- Language Support
- Require Java 8 or higher
- Localization
- Remove support for Turkish localization
- Visibility
- Make
BottomSheetState
package-private - Make
DropInEventType
package-private - Make
DropInActivity#onError
package-private - Make
AnimatedButtonView
package-private - Make
PaymentMethodItemView
package-private - Make
SupportedPaymentMethodsViewHolder
package-private - Make
VaultedPaymentMethodSelectedListener
package-private - Make static strings in
DropInClient
package-private - Make
DropInClient#deliverBrowserSwitchResult
package-private - Make
DropInResultCallback
package-private - Make
PaymentMethodDeleteException
package-private
- Make
- Venmo
- Remove
vaultVenmo
onDropInRequest
in favor of settingshouldVault
onVenmoRequest
- Remove
- DropInPaymentMethod
- Rename
DropInPaymentMethodType
toDropInPaymentMethod
- Rename
- DropInRequest
- Remove
requestThreeDSecureVerification
fromDropInRequest
- Remove
- Language Support
- Android 12 Support
- Bump braintree_android module dependency versions to
4.6.0
- Upgrade
targetSdkVersion
andcompileSdkVersion
to API 31 - Fix issue where Venmo app is not detected on Android 12 devices
- Bump braintree_android module dependency versions to
- Breaking Changes
- DropInRequest
- Remove
collectDeviceData
fromDropInRequest
in favor of always returning device data onDropInResult
- Remove
- DropInRequest
- Dependencies
- Include
braintree-core
,three-d-secure
,paypal
,venmo
,google-pay
,card
,data-collector
, andunion-pay
as api - Bump
card-form
to5.2.0
- Include
- DropInClient
- Add
DropInClient
- Add
DropInResultCallback
- Add
FetchMostRecentPaymentMethodCallback
- Add
GetSupportedCardTypesCallback
- Add
- Fragment Architecture
- Add
SupportedPaymentMethodsFragment
- Add
BottomSheetFragment
- Add
VaultedPaymentMethodSelectedListener
- Add
BottomSheetState
- Add
DropInEventType
- Add
DropInViewModel
- Add
SupportedPaymentMethodsViewHolder
- Add
- Exceptions
- Add
PaymentMethodDeleteException
- Add
- Breaking Changes
- Dependencies
- Bump braintree_android module dependency versions to
4.4.1
- Bump braintree_android module dependency versions to
- Package Structure
- Flatten package structure and move all classes to
com.braintreepayments.api
package
- Flatten package structure and move all classes to
- DropInRequest
- Remove
clientToken
,tokenizationKey
, andauthorization
fromDropInRequest
in favor of instantiatingDropInClient
with authorization - Remove deprecated
amount
parameter fromDropInRequest
- Remove
intent
fromDropInRequest
- Remove builder pattern from
DropInRequest
- Update
DropInRequest
getter and setter methods to follow consistent naming for Kotlin synthesized properties
- Remove
- DropInResult
- Remove
DropInResultListener
- Remove
DropInResult#fetchDropInResult()
- Make
DropInResult
constructor package-private
- Remove
- PaymentMethodType
- Rename
PaymentMethodType
toDropInPaymentMethodType
- Change
DropInPaymentMethodType#getCardTypes()
parameter fromSet
toList
- Rename
- DropInActivity
- Remove
ConfigurationListener
,PaymentMethodNonceCreatedListener
,PaymentMethodNonceUpdatedListener
,PaymentMethodSelectedListener
,BraintreeErrorListener
,BraintreeCancelListener
fromDropInActivity
- Replace
DropInActivity.EXTRA_ERROR
withDropInResult.EXTRA_ERROR
- Remove
BaseActivity
- Remove
onBackPressed
,onBackgroundClicked
andonVaultEditButtonClicked
methods
- Remove
- Fragment Architecture
- Replace
VaultManagerActivity
withVaultManagerFragment
- Replace
AddCardActivity
withAddCardFragment
andCardDetailsFragment
- Replace
- Adapters
- Make
SupportedPaymentMethodsAdapter
package-private - Make
VaultedPaymentMethodsAdapter
package-private - Make
VaultManagerPaymentMethodsAdapter
package-private
- Make
- Listeners
- Remove
AddPaymentUpdateListener
- Remove
AnimationFinishedListener
- Remove
- CardViews
- Remove
AddCardView
- Remove
EditCardView
- Remove
EnrollmentCardView
- Remove
- Dependencies
Note: The credentials for integrating with 3DS have changed. If you are using 3DS please update the credentials in your app-level build.gradle
- Bump braintree_android version to 3.21.1
- Bump braintree_android version to 3.20.1
- Bump braintree_android version to 3.20.0
- Upgrade
targetSdkVersion
andcompileSdkVersion
to API 31 - Bump braintree_android version to 3.18.0
- Bump braintree_android version to 3.17.4
Note: The credentials for integrating with 3DS have changed. If you are using 3DS please update the credentials in your app-level build.gradle
see 3DS Client Side Setup
- Bump card-form version to 5.1.1
- Update android-card-form version to 5.1.0 (fixes #212)
- Fix null pointer crash in
BaseActivity#shouldRequestThreeDSecureVerification
(fixes #207) - Update Visa card icons
- Update Google Pay icon to meet updated brand guidelines
- Bump three-d-secure version to 3.15.0
- Fix issue where payment methods disabled on
DropInRequest
were displayed if previously vaulted (fixes #205) - Bump braintree_android version to 3.15.0 (fixes #208)
- Bump braintree_android version to 3.14.2 (fixes #197)
- Upgrade Android Gradle Plugin to version 4.1.0
- Add
vaultVenmo
option toDropInRequest
- Bump braintree_android version to 3.14.1
- Bump
compileSdkVersion
andtargetSdkVersion
to API level 30 - Breaking Changes
- Bump card-form version to 5.0.0 (removes support for CardIO, a no longer maintained framework)
- Bump braintree_android version to 3.11.1
- Bump card-form version to 4.3.0 (Updates Card icons)
- Update payment method icons (fixes issue where Google Pay icon did not meet new brand guidelines)
- Update
bt_add_card
string resource for french locales. - Add 3DS support for non-network tokenized Google Pay cards
- Bump braintree_android version to 3.7.2
- Fix bug in
AddCardActivity#onError
that prevented passing error cases up to the appropriate listeners.
- Bump braintree_android version to 3.6.0
- Deprecate
amount
property onDropInRequest
- Bump braintree_android version to 3.4.1
- Add Support for 3DS 2.0
- Fix a bug with DropInActivity#onActivityResult (Thanks @xX7!)
- Add ability for merchant and/or customer to opt in/out of client side vaulting (card).
- Add
DropInRequest#disableCard
to disable Card payment method - Fix Google Payment issue where Google Pay does not communicate back to BraintreeFragment
- Add Hiper and Hipercard detection and assets
- Bump card-form to 4.1.0
- Bump minSdkVersion to 21
- Convert to AndroidX
- Removed Android Pay
- Upgrade braintree_android to 2.18.1 fixes Chrome Custom Tab integration when using Jetifier to use AndroidX
- Cardholder Name
- Field for the Cardholder's name
- Is disabled by default but can be required, or an optional field
- Upgrade card-form to 3.5.0
- Upgrade Android SDK to 28
- Vault Manager
- Fix edit button default visibility
- Vault Manager
- Allows for the deletion of vaulted payment methods
- Upgrade card-form to 3.4.1
- Upgrade card-form to 3.4.0
- Add support for
PayPalRequest
to customize the PayPal flow- Specifying an
amount
on thePayPalRequest
will result in a One-Time payment
- Specifying an
- Update spanish translation for bt_descriptor_unknown
- Upgrade Braintree to 2.13.1
- Enable input masking in AddCardActivity
- Update target SDK versions
- Upgrade Braintree to 2.10.0
- Restore the configuration after activity resumed (fixes #181)
- Add Google Pay support
- Update vaulted Maestro logos
- Update vaulted Mastercard logos
- Upgrade Braintree to 2.8.1
- Fix card number errors not being displayed
- Upgrade card-form to 3.1.1
- Fix missing French translations (fixes #35)
- Stop using dependency ranges (braintree/android-card-form#29)
- Prevent users from getting stuck when canceling 3D Secure (fixes #41)
- Run 3D Secure verifications for vaulted credit cards (fixes #41)
- Update compile and target SDK versions to 26
- Any support library dependencies must now be 26.0.0 or newer
- Fix incorrect error message for empty client tokens or tokenization keys
- Upgrade card-form to 3.1.0
- Upgrade Braintree to 2.6.2
- Prevent dependency resolution of alpha major versions of support libraries (fixes #28)
- Upgrade android-card-form to 3.0.4
- Upgrade Braintree to 2.4.3
- Handle
GoogleApiClientException
s instead of exitingActivity
(fixes #22) - Respect
DropInRequest
payment method overrides (fixes #27)
- Upgrade Braintree to 2.4.2
- Filter Android Pay from the list of vaulted payment methods (fixes #15)
- Always return a serialized exception in
Activity#onActivityResult
when there is an error - Upgrade Braintree to 2.4.0
- Increase
minSdkVersion
to 16- API 16 is the first version of Android that supports TLSv1.2. For more information on Braintree's upgrade to TLSv1.2 see the blog post.
- Update
android-card-form
to 3.0.3
- Fix an issue where Drop-in would not repect the
mAndroidPayEnabled
flag (thanks @bblackbelt)
- Fix missing security code name in CVV string. (fixes #5)
- Update compile and target SDK versions to 25
- Improve UnionPay enrollment and error handling
- Update translations
- Drop-in is now available in 23 languages: ar, da, de, en, es, fr-rCA, fr, in, it, iw, ja, ko, nb, nl, pl, pt, ru, sv, th, tr, zh-rCN, zh-rHK, zh-rTW.
- Upgrade android-card-form to 3.0.2
- Improve layout for right to left languages
- Add option to perform a 3D Secure verification when adding a card
- Upgrade Braintree to 2.3.11
- All new UI and integration for Drop-In
- New assets
- New bottom sheet UI
- Greater separation between payment methods and cards UI
- Fetch a customer's payment method without showing UI
- Added UnionPay support to Drop-In
- Drop-In no longer uses any internal methods in braintree_android
- Upgrade android-card-form to 2.3.2
- Upgrade Braintree 2.3.9
- Display card type when displaying Android Pay cards
- Update exception message when Android Manifest setup is invalid
- Fix unclosed
InputStream
(fixes #115) - Post exception to error listener instead of throwing
IllegalStateException
whenBraintreeFragment
is not attached to anActivity
- Restore url when
BraintreeFragment
is recreated (fixes #117) - Upgrade gradle build tools to 2.1.3
- Parse and return errors when Android Pay tokenization fails
- Add support for changing the backing card for Android Pay in Drop-In
- Call configuration callback whenever a new Activity is attached to
BraintreeFragment
- Allow vaulting of Venmo accounts. See
Venmo#authorizeAccount
. - Remove Venmo whitelist check
- Fix
BraintreeCancelListener#onCancel
being invoked twice for PayPal cancellations (fixes #112)
- Change
UnionPayCallback
to includesmsCodeRequired
- Change
UnionPayCapabilities#isUnionPayEnrollmentRequired
toUnionPayCapabilities#isSupported
- Upgrade Google Play Services to [9.0.0,10.0.0)
- Upgrade support annotations to [24.0.0,25.0.0)
- Upgrade build tools to 24.0.0
- Update compile and target API versions to 24
- Fix
NullPointerException
inAnalyticsIntentService
- Prevent invalid schemes from being used for browser switching (Packages containing underscores would generate invalid schemes)
- Fix
NoClassDefFoundError
inDataCollector
- Fix
NullPointerException
inBraintreeFragment
- Add PayPal Checkout intent option (authorize or sale). See
PayPalRequest#intent
- Update UnionPay support in demo app custom integration
- Update
android-card-form
to 2.3.1 - Fix
NullPointerException
inAddPaymentMethodViewController
(fixes #100) - Fix
IllegalStateException
when creating aBraintreeFragment
(fixes #104) - Fix
NullPointerException
whenBraintreeFragment
is not attached to anActivity
(fixes #105)
- Fix
NullPointerException
when handling a PayPal response (fixes #101)
- Fix
NullPointerException
s inBraintreeFragment
when not attached to anActivity
- Fix Chrome Custom Tabs Intent flags interfering with browser switch
- Add new
DataCollector#collectDeviceData
methods that use a callback; deprecate synchronous methods - Reduce size of assets in Drop-In
- UnionPay Beta Please note: this API is in beta and subject to change
- Add support for fetching a customer's payment methods
- Return a
RateLimitException
when a merchant account is being rate limited
- Fixes
- Update BraintreeHttpClient to support UTF-8 encoding (fixes #85)
- Update PayPalDataCollector to 3.1.1
- Fixes
- Update device collector to 2.6.1 (fixes #87)
- Fix crash when
BraintreeFragment
has not been attached to anActivity
- Features
- Add
PaymentRequest#defaultFirst
option - Add support for Chrome Custom tabs when browser switching
- Add
- Fixes
- Fix incorrect
groupId
of dependencies in pom file for 2.2.2
- Fix incorrect
🚨 The groupId
s in this version's pom files are incorrect and dependencies will not resolve. Do not use. 🚨
- Update
PaymentButton
styling when PayPal is the only visible option - Features
- Add client side overrides for payment methods in Drop-in and
PaymentButton
toPaymentRequest
- Add support for non-USD currencies and non-US shipping addresses in Android Pay
- Return email, billing address and shipping address as part of an
AndroidPayCardNonce
from Drop-in
- Add client side overrides for payment methods in Drop-in and
- Fixes
- Fix back button not doing anything in Drop-in after an Android Pay error is returned
- Deprecate
DataCollector#collectDeviceData
and add new signature to prevent a NullPointerException when using a fragment that is not attached to anActivity
- Fixes
- Fix support annotations being bundled in PayPalDataCollector jar
- Open source PayPal SDK
- Deprecate
PayPalOneTouchActivity
and remove from Android manifest - Add Travis CI build
- Improve errors and manifest validation
- Features
- Add
CardBuilder#cardholderName
- Add
PayPalRequest#billingAgreementDescription
- Add
- Fixes
- Fix back button not working in Drop-in after adding a payment method
- Fix failure to return a payment method nonce after browser switch when the fragment was recreated.
- Update Google Play Services Wallet to 8.4.0
- Use
ENVIRONMENT_TEST
for Android Pay requests in sandbox - Add
AndroidPay#isReadyToPay
method
- Demo app upgrades
- Update PayPal SDK to 2.4.3 (fixes #67)
- Update android-card-form to 2.1.1
- Update gradle to 2.8
- Update build tools to 23.0.2
- Features
- Add support for fraud data collection in Drop-in
- Fixes
- Add rule to suppress ProGuard warnings
- Fix Drop-in crash
- Fix NPE when there is no active network (fixes #77)
- Pay with Venmo
PaymentButton#newInstance
now accepts a container id to addPaymentButton
to that container- Android Pay assets
- Fixes
- Add
onInflate
method for Android versions < 23 - PayPal cancel events (fixes #63)
- Add
- Make support annotations an optional dependency
- Cache configuration to prevent unnecessary network requests
- Fixes
- Fix BraintreeDataCollector as an optional dependency
- Fix
PaymentRequest
crash when Google Play Services is not present
- Increase
minSdkVersion
to 15 (see Platform Versions for the current distribution of Android versions) - Remove Gson dependency
- Replace
Braintree
class with headlessBraintreeFragment
- Move methods for creating payment methods from central
Braintree
class to their own classes e.g.PayPal#authorizeAccount
,Card#tokenize
- Move methods for creating payment methods from central
- Add support for Tokenization Keys in addition to Client Tokens
- Rename PaymentMethod to PaymentMethodNonce
- Rename BraintreeData module to BraintreeDataCollector
- Update PayPal
- Remove PayPal Android SDK dependency
- Replace in-app log in with browser based log in
- Add support for PayPal billing agreements and one-time payments
- Convert
PaymentButton
class from a view to a fragment - Create
PaymentRequest
class for specifying options in Drop-in and thePaymentButton
- Remove Venmo One Touch. To join the beta for Pay with Venmo, contact Braintree Support
- Remove Coinbase