- GooglePay
- Fix a crash being caused on API 33 devices. It is recommended that merchants not use 5.1.0 for GooglePay.
- Shopper Insights (BETA)
- For analytics, send
experiment
as a parameter togetRecommendedPaymentMethods
method - For analytics, send
experiment
andpaymentMethodsDisplayed
analytic metrics to FPTI via the button presented event methods
- For analytics, send
- PayPal
- Add
PayPalRecurringBillingDetails
andPayPalRecurringBillingPlanType
opt-in request objects. Including these details will provide transparency to users on their billing schedule, dates, and amounts, as well as launch a modernized checkout UI. - Add
userPhoneNumber
property toPayPalVaultRequest
andPayPalCheckoutRequest
- Add
- PayPal
- Add PayPal App Switch vault flow (BETA)
- Add
enablePayPalAppSwitch
property toPayPalVaultRequest
for App Switch support - Require
PayPalVaultRequest.userAuthenticationEmail
for App Switch support - Require
PayPalClient.appLinkReturnUrl
for App Switch support - Send
link_type
andpaypal_installed
inevent_params
when available to PayPal's analytics service (FPTI) - Note: This feature is currently in beta and may change or be removed in future releases.
- Add
- Add PayPal App Switch vault flow (BETA)
- GooglePay
- Upgrade
play-services-wallet
to19.4.0
- Upgrade
- Breaking Changes
- Venmo
- Convert
VenmoPaymentMethodUsage
to an enum - Convert
VenmoLineItemKind
to an enum - Make
VenmoPaymentAuthRequestParams
internal - Remove
VenmoPaymentAuthResultInfo
- Convert
- BraintreeCore
- Remove
BraintreeDeepLinkActivity
- Remove
authorizationFingerprint
fromClientToken
- Remove
- GooglePay
- Make
GooglePayPaymentAuthRequestParams
internal - Make
GooglePayPaymentAuthResult
parameters internal - Update
GooglePayLauncher.launch
to take aGooglePayPaymentAuthRequest.ReadyToLaunch
parameter - Remove
GooglePayRequest.setTransactionInfo
and replace withcurrencyCode
,totalPrice, and
totalPriceStatus` parameters - Change
GooglePayRequest.billingAddressFormat
toGooglePayBillingAddressFormat
enum - Change
GooglePayRequest.shippingAddressRequirements
toGooglePayRequest.shippingAddressParameters
- Make
- PayPal
- Make
PayPalPaymentAuthRequestParams
internal - Remove
PayPalPaymentAuthResultInfo
- Rename
PayPalLauncher.handleReturnToAppFromBrowser()
toPayPalLauncher.handleReturnToApp()
- Make
- SEPADirectDebit
- Make
SEPADirectDebitPaymentAuthRequestParams
internal - Remove
SEPADirectDebitPaymentAuthResultInfo
- Rename
SEPADirectDebitLauncher.handleReturnToAppFromBrowser()
toSEPADirectDebitLauncher.handleReturnToApp()
- Make
- ThreeDSecure
- Make
ThreeDSecureParams
internal - Make
ThreeDSecurePaymentAuthResult
parameters internal - Remove
ThreeDSecurePaymentAuthResultInfo
- Make
- LocalPayment
- Remove
LocalPaymentAuthResultInfo
- Make
LocalPaymentAuthRequestParams
internal - Rename
LocalPaymentLauncher.handleReturnToAppFromBrowser()
toLocalPaymentLauncher.handleReturnToApp()
- Remove
- Venmo
Note: Includes all changes in 5.0.0-beta2 and 5.0.0-beta1
- All Modules
- Upgrade Gradle version to
8.5.2
- Upgrade
compileSdkVersion
andtargetSdkVersion
to API 35 - Bump target Java version to Java 17
- Upgrade Gradle version to
- BraintreeCore
- Update
endpoint
syntax sent to FPTI for 3D Secure and Venmo flows
- Update
- ThreeDSecure
- Update
ThreeDSecureActivity
theme attributes to prevent the Action Bar title from displaying and enforce transparency properly with AppCompat theme attributes
- Update
- Breaking Changes
- All Modules
countryCodeAlpha2
now returns a 2 character country code instead of a 3 character country code
- PayPal
- Remove
appLinkEnabled
fromPayPalRequest
as Android app links are now required - Update
PayPalCreditFinancing.hasPayerAcceptance()
togetHasPayerAcceptance()
(Java) - Change
PayPalPaymentIntent
to an enum - Change
PayPalLandingPageType
to an enum - Change
PayPalPaymentUserAction
to an enum - Update
PayPalRequest.hasUserLocationConsent()
togetHasUserLocationConsent()
(Java) - Change
PayPalLineItem.desc()
tosetDescription()
- Change
PayPalLineItemKind
to an enum - Rename
PayPalLineItemKind.KIND_CREDIT
toCREDIT
- Rename
PayPalLineItemKind.KIND_DEBIT
toDEBIT
- Update
ThreeDSSecureInfo.isLiabilityShifted()
toThreeDSSecureInfo.getLiabilityShifted()
- Update
ThreeDSSecureInfo.isLiabilityShiftPossible()
toThreeDSSecureInfo.getLiabilityShiftPossible()
- Update
ThreeDSSecureInfo.wasVerified()
toThreeDSSecureInfo.getWasVerified()
- Update
ThreeDSecurePaymentAuthResult.getThreeSecureResult()
toThreeDSecurePaymentAuthResult.getThreeDSecureParams()
- Update
ThreeDSecurePaymentAuthResult.getJWT()
toThreeDSecurePaymentAuthResult.getJwt()
- Change
ThreeDSecureShippingMethod
to an enum - Change
ThreeDSecureAccountType
to an enum - Change
ThreeDSecureRenderType
to an enum - Change
ThreeDSecureRequestedExemptionType
to an enum - Change
ThreeDSecureUiType
to an enum - Update
ThreeDSecureRequest.isChallengeRequested()
toThreeDSecureRequest.getChallengeRequested()
- Update
ThreeDSecureRequest.isDataOnlyRequested()
toThreeDSecureRequest.getDataOnlyRequested()
- Update
ThreeDSecureRequest.isExemptionRequested()
toThreeDSecureRequest.getDataOnlyRequested()
- Update
ThreeDSecureRequest.isCardAddChallengeRequested()
toThreeDSecureRequest.getCardAddChallengeRequested()
- Remove
- ThreeDSecure
* Split
ThreeDSecureV2UiCustomization.setButtonCustomization()
tosetButtonCustomization()
andsetButtonType()
* ChangeThreeDSecureV2ButtonType
to an enum
- All Modules
- Breaking Changes
- All Modules
- Bump
minSdkVersion
to API 23 - Bump target Java version to Java 11
- Upgrade Kotlin version to 1.9.10
- Upgrade to Android Gradle Plugin 8
- Bump
- BraintreeCore
- Update package name to
com.braintreepayments.api.core
- Remove
BraintreeClient
public constructors - Remove
deliverBrowserSwitchResult
anddeliverBrowserSwitchResultFromNewTask
fromBraintreeClient
- Remove
ClientTokenProvider
- Update payment method constructor parameters from
braintreeClient
tocontext
andauthorization
- Remove
BraintreeSharedPreferencesException
- Convert
PostalAddress
to data class - Remove
open
modifier onConfiguration
- Remove
UserCanceledException.isExplicitCancelation
- Update package name to
- UnionPay
- Remove
union-pay
module- UnionPay cards can now be processed as regular cards (through the
card
module) due to their partnership with Discover
- UnionPay cards can now be processed as regular cards (through the
- Remove
- BraintreeDataCollector
- Update package name to
com.braintreepayments.api.datacollector
- Replace
DataCollector#collectDeviceData(context, merchantId, callback)
withDataCollector#collectDeviceData(context, riskCorrelationId, callback)
- Add
DataCollectorResult
and updateDataCollectorCallback
parameters
- Update package name to
- PayPalDataCollector
- Remove
paypal-data-collector
module (usedata-collector
)
- Remove
- Venmo
- Update package name to
com.braintreepayments.api.venmo
- Remove
setFallbackToWeb()
fromVenmoRequest
- fallback to web is default behavior now - Remove
VenmoListener
,VenmoTokenizeAccountCallback
, andVenmoResultCallback
- Add
VenmoLauncher
,VenmoPaymentAuthRequest
,VenmoPaymentAuthRequestCallback
,VenmoPaymentAuthResult
,VenmoResult
,VenmoTokenizeCallback
, andVenmoLauncherCallback
- Rename
VenmoOnActivityResultCallback
toVenmoResultCallback
- Remove overload constructors,
setListener
, andonActivityResult
fromVenmoClient
- Change
VenmoClient#tokenizeVenmoAccount
parameters and rename toVenmoClient#tokenize
- Remove
VenmoIsReadyToPayCallback
- Add
VenmoClient#createPaymentAuthRequest
- Move
showVenmoInGooglePlayStore
toVenmoLauncher
- Remove
isVenmoAppSwitchAvailable
andisReadyToPay
(no longer required as Venmo flow will fallback to web if app is not installed)
- Update package name to
- GooglePay
- Update package name to
com.braintreepayments.api.googlepay
- Remove
GooglePayListener
andGooglePayRequestPaymentCallback
- Add
GooglePayLauncher
,GooglePayPaymentAuthRequest
,GooglePayPaymentAuthRequestCallback
,GooglePayPaymentAuthResult
,GooglePayTokenizeCallback
,GooglePayTokenizationParameters
andGooglePayLauncherCallback
- Remove overload constructors,
setListener, and
onActivityResultfrom
GooglePayClient` - Change
GooglePayClient#requestPayment
parameters and rename toGooglePayClient#createPaymentAuthRequest
- Change
GooglePayClient#isReadyToPay
andGooglePayIsReadyToPayCallback
parameters - Add
GooglePayClient#tokenize
- Remove
merchantId
fromGooglePayRequest
- Change
GooglePayGetTokenizationParametersCallback
parameters - Rename
GooglePayLauncherCallback#onResult
toGooglePayLauncherCallback#onGooglePayLauncherResult
- Change
GooglePayRequest#isCreditCardsAllowed
toGooglePayRequest#getAllowCreditCards
- Update package name to
- ThreeDSecure
- Remove
ThreeDSecureListener
- Add
ThreeDSecureLauncher
,ThreeDSecurePaymentAuthResult
,ThreeDSecureTokenizeCallback
,ThreeDSecurePaymentAuthRequest
,ThreeDSecurePaymentAuthRequestCallback
,ThreeDSecurePrepareLookupResult
,ThreeDSecurePrepareLookupCallback
, andThreeDSecureLancherCallback
- Remove overload constructors,
setListener
,continuePerformVerification
,onBrowserSwitchResult
andonActivityResult
fromThreeDSecureClient
- Change
ThreeDSecureClient#initializeChallengeWithLookupResponse
parameters - Convert
ThreeDSecureResult
into sealed class - Add
ThreeDSecureClient#tokenize
- Rename
ThreeDSecureClient#performVerification
toThreeDSecureClient#createPaymentAuthRequest
and change parameters - Remove
versionRequested
fromThreeDSecureRequest
- Add
ThreeDSecureNonce
class - Rename
ThreeDSecureResult#tokenizedCard
toThreeDSecureResult#threeDSecureNonce
- Remove
ThreeDSecureV1UICustomization
- Remove
versionRequesed
fromThreeDSecureRequest
as version 1 is no longer supported - Remove
ThreeDSecureV2BaseCustomization
- Remove
CardinalValidateReceiver
fromThreeDSecureActivity
- Make empty
ThreeDSecureLookup
constructor package-private
- Remove
- PayPal
- Update package name to
com.braintreepayments.api.paypal
- Require Android App Links to return to merchant app from PayPal flows
- Remove
PayPalListener
- Add
PayPalLauncher
,PayPalPaymentAuthRequest
,PayPalPendingRequest
,PayPalPaymentAuthResult
,PayPalPaymentAuthCallback
,PayPalTokenizeCallback
, andPayPalResult
- Remove
PayPalFlowStartedCallback
- Remove overload constructors,
setListener
,parseBrowserSwitchResult
,clearActiveBrowserSwitchResult
,requestOneTimePayment
, andrequestBillingAgreement
fromPayPalClient
- Rename
PayPalClient#tokenizePayPalAccount
toPayPalClient#createPaymentAuthRequest
and change parameters - Rename
PayPalClient#onBrowserSwitchResult
toPayPalCient#tokenize
and change parameters
- Update package name to
- LocalPayment
- Remove
LocalPaymentListener
- Add
LocalPaymentLauncher
,LocalPaymentPendingRequest
,LocalPaymentTokenizeCallback
,LocalPaymentAuthRequest
,LocalPaymentAuthRequestCallback
andLocalPaymentAuthResult
- Change
LocalPaymentResult
type - Remove overload constructors,
setListener
,parseBrowserSwitchResult
,clearActiveBrowserSwitchResult
,approveLocalPayment
, andapprovePayment
fromLocalPaymentClient
- Rename
LocalPaymentClient#startPayment
toLocalPaymentClient#creatPaymentAuthRequest
and change parameters - Rename
LocalPaymentClient#onBrowserSwithResult
toLocalPaymentClient#tokenize
and change parameters - Update package name to
com.braintreepayments.api.localpayment
- Remove
- Card
- Update package name to
com.braintreepayments.api.card
- Remove
threeDSecureInfo
fromCardNonce
- Move
ThreeDSecureInfo
tothree-d-secure
module - Add
CardResult
object - Change
CardTokenizeCallback
parameters - Change
BinType
from String to enum
- Update package name to
- SEPA Direct Debit
- Update package name to
com.braintreepayments.api.sepadirectdebit
- Remove
SEPADirectDebitLifecycleObserver
andSEPADirectDebitListener
- Add
SEPADirectDebitLauncher
,SEPADirectDebitPendingRequest
,SEPADirectDebitPaymentAuthRequestCallback
,SEPADirectDebitPaymentAuthRequest
,SEPADirectDebitResult
,SEPADirectDebitPaymentAuthRequestParams
andSEPADirectDebitTokenizeCallback
- Remove Fragment or Activity requirement from
SEPADirectDebitClient
constructor - Replace
SEPADirectDebitClient#onBrowserSwitchResult
withSEPADirectDebitClient#tokenize
and modify parameters - Replace
SEPADirectDebitClient#tokenize
withSEPADirectDebitClient#createPaymentAuthRequest
and modify parameters - Rename
SEPADirectDebitPaymentAuthRequestCallback#onResult
toSEPADirectDebitPaymentAuthRequestCallback#onSEPADirectDebitPaymentAuthResult
- Update package name to
- Visa Checkout
- Visa checkout is not yet available for v5
- American Express
- Update package name to
com.braintreepayments.api.americanexpress
- Change parameters of
AmericanExpressGetRewardsBalanceCallback
- Add
AmericanExpressResult
- Update package name to
- Samsung Pay
- Remove entire Samsung Pay module
- PayPal Native Checkout
- Remove entire PayPal Native Checkout module
- SharedUtils
- Update package name to
com.braintreepayments.api.sharedutils
- Update package name to
- PayPal Messaging (BETA)
- Remove
BraintreeClient
from constructor - Update package name to
com.braintreepayments.api.paypalmessaging
- Remove
- Shopper Insights (BETA)
- Remove
BraintreeClient
from constructor - Update package name to
com.braintreepayments.api.shopperinsights
- Remove
- All Modules
- PayPal
- Fix issue that causes a JSON parsing error when Pay Later is selected during checkout.
- ShopperInsights (BETA)
- Add error when using an invalid authorization type
- PayPalNativeCheckout (DEPRECATED)
- NOTE: This module is being deprecated and will be removed in the future version of the SDK
- Add deprecated warning message to all public classes and methods
- ThreeDSecure
- Add customFields param to ThreeDSecureRequest
- PayPal
- Fix
PayPalAccountNonce
Null Pointer Exception by ensuring that all@NonNull
values are initialized with a non-null value.
- Fix
- PayPalNativeCheckout
- Fix
PayPalNativeCheckoutAccountNonce
Null Pointer Exception by ensuring that all@NonNull
values are initialized with a non-null value.
- Fix
- BraintreeCore
- Use TLS 1.3 for all HTTP requests, when available
- Refactor TLSCertificatePinning
certInputStream
property to initialize aByteArrayInputStream
once instead of every time the property is accessed.
- ThreeDSecure
- Move Cardinal cleanup from SDK internals into
ThreeDSecureActivity
.
- Move Cardinal cleanup from SDK internals into
- BraintreeCore
- Add
appLinkReturnUri
toBraintreeClient
constructors for Android App Link support (for PayPal web flows only) - Bump
browser-switch
version to2.7.0
- Add
- PayPal
- Add
appLinkEnabled
property toPayPalRequest
for Android App Link support - Add optional property
PayPalCheckoutRequest.setUserAuthenticationEmail()
- Add
- ShopperInsights (BETA)
- Requires opt in -
@OptIn(ExperimentalBetaApi::class)
- Add
ShopperInsightsClient.getRecommendedPaymentMethods()
for returning recommendations based on the buyer
- Requires opt in -
- ThreeDSecure
- Fix issue that causes a black screen to display after successful 3DS validation.
- Venmo
- Send
link_type
inevent_params
to PayPal's analytics service (FPTI)
- Send
- PayPalMessaging (BETA)
- Add
PayPalMessagingRequest
,PayPalMessagingColor
,PayPalMessagingLogoType
,PayPalMessagingOfferType
,PayPalMessagingPageType
,PayPalMessagingTextAlignment
, andPayPalMessagingListener
- Add
PayPalMessagingView(BraintreeClient, Context)
to display PayPal messages to promote offers such as Pay Later and PayPal Credit to customers.- To get started call
PayPalMessagingView#start()
with an optionalPayPalMessagingRequest
- To get started call
- Add
- PayPal
- Update
PayPalInternalClient
to use pairing ID as client metadata ID by default. - Send
is_vault
inevent_params
analytics
- Update
- Venmo
- Send
link_type
andis_vault
inevent_params
analytics
- Send
- BraintreeCore
- Updated expiring pinned vendor SSL certificates
- GooglePay
- Add
GooglePayClient#tokenize(PaymentData, GooglePayOnActivityResultCallback)
to be invoked after direct Google Play Services integration
- Add
- PayPalNativeCheckout
- Bump native-checkout version to
1.3.2
- Fixes Google Play Store Rejection
- Add
hasUserLocationConsent
property toPayPalNativeCheckoutRequest
,PayPalNativeCheckoutVaultRequest
andPayPalNativeRequest
- Deprecate existing constructors that do not pass in
hasUserLocationConsent
- Add
- Bump native-checkout version to
- PayPalDataCollector
- Bump Magnes version to
5.5.1
- Bump Magnes version to
- Local Payment
- Fixes Google Play Store Rejection
- Add
hasUserLocationConsent
property toLocalPaymentRequest
- Deprecate existing constructor that does not pass in
hasUserLocationConsent
- Add
- Fixes Google Play Store Rejection
- PayPal
- Fixes Google Play Store Rejection
- Add
hasUserLocationConsent
property toPayPalCheckoutRequest
,PayPalVaultRequest
andPayPalRequest
- Deprecate existing constructors that do not pass in
hasUserLocationConsent
- Add
- Fixes Google Play Store Rejection
- BraintreeDataCollector
- Bump Magnes SDK to version 5.5.0
- Fixes Google Play Store Rejection
- Add
DataCollectorRequest
to pass inhasUserLocationConsent
- Update
DataCollector.collectDeviceData()
to take inDataCollectorRequest
- Deprecate existing
DataCollector.collectDeviceData()
- Add
- PayPalDataCollector
- Fixes Google Play Store Rejection
- Add
PayPalDataCollectorRequest
to pass inhasUserLocationConsent
- Update
PayPalDataCollector.collectDeviceData()
to take inPayPalDataCollectorRequest
- Deprecate existing
PayPalDataCollector.collectDeviceData()
- Add
- Fixes Google Play Store Rejection
- GooglePay
- Add
GooglePayClient#isReadyToPay(Context, ReadyForGooglePayRequest, GooglePayIsReadyToPayCallback)
method - Deprecate
GooglePayClient#isReadyToPay(FragmentActivity, ReadyForGooglePayRequest, GooglePayIsReadyToPayCallback)
method
- Add
- Move from Braintree to PayPal analytics service (FPTI)
- Venmo
- Fix bug where SDK is not sending metadata as expected when creating payment context or constructing App Link URL
- PayPal
- Add optional property
PayPalVaultRequest.setUserAuthenticationEmail()
- Add optional property
- BraintreeCore
- Send
paypal_context_id
inanalytics_event
to PayPal's analytics service (FPTI) when available
- Send
- Venmo
- Add
setIsFinalAmount()
toVenmoRequest
- Add
setFallbackToWeb()
toVenmoRequest
- If set to
true
customers will fallback to a web based Venmo flow if the Venmo app is not installed - This method uses App Links instead of Deep Links
- If set to
- Add
VenmoClient#parseBrowserSwitchResult(Context, Intent)
method - Add
VenmoClient#clearActiveBrowserSwitchRequests(Context)
method - Add
VenmoClient#onBrowserSwitchResult(BrowserSwitchResult, VenmoOnActivityResultCallback)
method
- Add
- ThreeDSecure
- Call cleanup method to resolve
Cardinal.getInstance
memory leak
- Call cleanup method to resolve
- PayPal
- Add imageUrl, upcCode, and upcType to PayPalLineItem
- PayPalNativeCheckout
- Bump native-checkout version to release
1.2.1
- Upgraded the data-collector SDK to version 3.21.0 which made updates to Device Data collection related to Google Play's User Data Policy. For more info read the release notes
- Bump native-checkout version to release
- BraintreeCore
- Bump
browser-switch
version to2.6.1
(fixes #799)
- Bump
- PayPal
- Fix issue where inaccurate error message was being returned on authorization or configuration error (fixes #821)
- Venmo
- Fix NPE when
VenmoListener
is null (fixes #832)
- Fix NPE when
- PayPalNativeCheckout
- Bump native-checkout version to release
1.2.0
- Add
setUserAuthenticationEmail()
toPayPalNativeRequest
- Bump native-checkout version to release
- GooglePay
- Bump
play-services-wallet
version to19.2.1
- Add
totalPriceLabel
toGooglePayRequest
- Bump
- BraintreeCore
- Remove beta features
PreferredPaymentMethodsClient
,PreferredPaymentMethodsResult
, andPreferredPaymentmethodsCallback
- Remove beta features
- GooglePay
- Fix bug where credit cards were allowed when
GooglePayRequest#setAllowedCreditCards(false)
- Fix bug where credit cards were allowed when
- BraintreeCore
- Internal Fixes
- ThreeDSecure
- Bump Cardinal version to
2.2.7-5
- Bump Cardinal version to
- All Modules
- Android 14 Support
- Upgrade
compileSdkVersion
andtargetSdkVersion
to API 34
- Upgrade
- Android 14 Support
- ThreeDSecure
- Bump Cardinal version to
2.2.7-4
- Bump Cardinal version to
- BraintreeCore
- Bump
browser-switch
version to2.6.0
- Bump
- PayPalNativeCheckout
- Bump min SDK version to 23 to prevent crashes on lower Android versions
- PayPalNativeCheckout
- Bump native-checkout version to release
1.1.0
- Fix bug where
PayPalNativeCheckoutVaultRequest
flow in the EU results in failed requests when using the nonce in a server side request
- Bump native-checkout version to release
- BraintreeCore
- Bump
browser-switch
version to2.5.0
- Bump
- All Modules
- Revert Kotlin version to
1.7.10
- Revert Kotlin version to
- GooglePay
- Add
GooglePayCardNonce.getCardNetwork()
- Add
- GooglePay
- Add
GooglePayRequest.setAllowCreditCards()
- Add
- PayPalNativeCheckout (General Availability release)
- Bump native-checkout version to release
1.0.0
- Fix an issue where the return from web fallback was not returning the correct information
- Bump native-checkout version to release
- PayPalNativeCheckout (BETA)
- Fix bug where setting
setUserAction()
does not update button as expected
- Fix bug where setting
- SEPADirectDebit
- Add
SEPADirectDebitRequest.setLocale()
- Add
- Venmo
- Add missing space to Venmo
PaymentContext
GraphQL query (fixes #749)
- Add missing space to Venmo
- Bump target Kotlin version to
1.8.0
- PayPal
- Undeprecate
PayPalClient(BraintreeClient)
constructor - Undeprecate
PayPalClient#onBrowserSwitchResult(BrowserSwitchResult, PayPalBrowserSwitchResultCallback)
- Add
PayPalClient#parseBrowserSwitchResult(Context, Intent)
method - Add
PayPalClient#clearActiveBrowserSwitchRequests(Context)
method
- Undeprecate
- LocalPayment
- Undeprecate
LocalPaymentClient(BraintreeClient)
constructor - Undeprecate
LocalPaymentClient#onBrowserSwitchResult(Context, BrowserSwitchResult, LocalPaymentBrowserSwitchResultCallback)
- Add
LocalPaymentClient#parseBrowserSwitchResult(Context, Intent)
method - Add
LocalPaymentClient#clearActiveBrowserSwitchRequests(Context)
method
- Undeprecate
- Venmo
- Fix issue caused by
VenmoActivityResultContract
where a user cancelation is being misinterpreted as an unknown exception because the intent data isnull
(fixes #734) - Add the following properties to
VenmoRequest
:collectCustomerBillingAddress
collectCustomerShippingAddress
totalAmount
subTotalAmount
discountAmount
taxAmount
shippingAmount
lineItems
- Fix issue caused by
- BraintreeDataCollector
- Remove Kount dependency
- Kount is no longer supported via Braintree, instead please use our Fraud Protection Advanced product
- GooglePay
- Add
GooglePayCardNonce.getBin()
- Add
- PayPalNativeCheckout (BETA)
- Reverting native version upgrade
- ThreeDSecure
- Bump Cardinal version to
2.2.7-3
- Add
setUiType
andsetRenderTypes
toThreeDSecureRequest
- Bump Cardinal version to
- PayPalNativeCheckout (BETA)
- Bump native-checkout version to release
0.112.0
- Bump native-checkout version to release
- ThreeDSecure
- Guard
ThreeDSecureClient
against potential Cardinal SDK runtime exceptions
- Guard
- ThreeDSecure
- Catch Null Pointer Exception in
ThreeDSecureActivity
to prevent crash (fixes #715)
- Catch Null Pointer Exception in
- DataCollector
- Use
applicationContext
inDataCollector#collectDeviceData()
callback to prevent potentialActivity
leaks
- Use
- GooglePay
- Fix issue that causes
GooglePayNonce#isNetworkTokenized
to always returnfalse
after being parceled
- Fix issue that causes
- ThreeDSecure
- Catch
TransactionTooLargeException
to prevent crash on large data (fixes #642) - Deprecate 3DS v1. Any attempt to use 3DS v1 will now throw an error. See Migrating to 3D Secure 2 for more information.
- Catch
- BraintreeDataCollector
- Bump Magnes dependency to version 5.4.0 (fixes #657)
- PayPal
- Fix issue that causes a null pointer exception when
PayPalClient
attempts to notify success or failure when the listener isnull
- Fix issue that causes a null pointer exception when
-
PayPalNativeCheckout (BETA)
- Fixes a bug where an error was not thrown inside
PayPalNativeCheckoutClient
when no PayPal response was received from the API
- Fixes a bug where an error was not thrown inside
-
BraintreeCore
- Add
BraintreeClient#deliverBrowserSwitchResultFromNewTask()
method to allow browser switch results to be captured manually whenBraintreeClient#launchesBrowserSwitchAsNewTask()
is set to true.
- Add
-
SharedUtils
- Replace EncryptedSharedPreferences with SharedPreferences for internal persistent data storage for all payment flows
- Deprecate
BraintreeSharedPreferencesException
- BraintreeCore
- Provide more detailed information for Browser Switch errors for PayPal, PayPalNativeCheckout, and ThreeDSecure payment flows
- SamsungPay
- Support legacy
sourceCardLast4
property when parsing Samsung Pay response
- Support legacy
- SharedUtils
- Revert androidx
security-crypto
dependency to1.1.0-alpha03
(1.1.0-alpha04
requires a compile target of 33)
- Revert androidx
- SharedUtils
- Bump androidx
security-crypto
dependency to1.1.0-alpha04
- Bump androidx
- PayPalNativeCheckout (BETA)
- Bump native-checkout version to
0.8.8
- Fix an issue where address override was not being honored in
PayPalNativeCheckoutRequest
- Fixes bug in
PayPalNativeCheckoutAccountNonce
where theintent
was not being set correctly from thePayPalNativeCheckoutRequest
- Breaking changes
PayPalNativeRequest
requires areturnUrl
to redirect correctly after authentication
- Bump native-checkout version to
- ThreeDSecure
- Apply
Theme.AppCompat
toThreeDSecureActivity
- Apply
- SamsungPay
- Support legacy
singleUseToken
property when parsing Samsung Pay response (fixes #668)
- Support legacy
- BraintreeCore
- Allow uppercase characters in default return url scheme
- ThreeDSecure
- Add
setRequestedExemptionType
toThreeDSecureRequest
- Add
- Please note: This version is dependent on the Java 8 programming language. Please read Use Java 8 language features in the Android developer guide to learn how to use it in your project. If this causes an issue with your integration, please contact our support team for further assistance.
- ThreeDSecure
- Defensively guard against
ThreeDSecureActivity
launch without extras (fixes #641)
- Defensively guard against
- BraintreeCore
- Bump
browser-switch
version to2.3.2
- Bump
- PayPalNativeCheckout (BETA)
- Bump native-checkout version to
0.8.7
- Bump native-checkout version to
- PayPal
- Update exception documentation links to point to valid PayPal Braintree documentation URL
- ThreeDSecure
- Update exception documentation links to point to valid PayPal Braintree documentation URL
- BraintreeCore
- Update pinned certificates used by
BraintreeGraphQLClient
andBraintreeHttpClient
- Update pinned certificates used by
- PayPalNativeCheckout (BETA)
- Pass the risk correlation ID from the Native Checkout SDK if it is not provided in the initial PayPal request
- SharedUtils
- Allow
BraintreeSharedPreferences
to gracefully degrade whenEncryptedSharedPreferences
fails (fix for #619) - Add new
BraintreeSharedPreferencesException
to notify when an error occurs while interacting with shared preferences
- Allow
- GooglePay
- Bump
play-services-wallet
version to19.1.0
- Bump
- SharedUtils
- Add explicit key alias for encrypted shared prefs (potential fix for #604)
- Android 13 Support
- Upgrade
targetSdkVersion
andcompileSdkVersion
to API 33
- Upgrade
- ThreeDSecure
- Bump Cardinal version to
2.2.7-2
- Bump Cardinal version to
- BraintreeCore
- Bump
browser-switch
version to2.3.1
- Bump
- PayPalNativeCheckout (BETA)
- Bumping native-checkout version to 0.8.2
- Fixes an issue where merchants with multiple client IDs would fallback to web on subsequent checkout sessions
- Remove exit survey when canceling Native Checkout flow
- PayPalNativeCheckout (BETA)
- Bumping native-checkout version to 0.8.1
- Adding in Native checkout support for one time password
- BraintreeCore
- Add
BraintreeClient#launchesBrowserSwitchAsNewTask()
boolean flag to allow the SDK to capture deep link results on behalf of the host application - Create
BraintreeDeepLinkActivity
to capture deep link results on behalf of the host application
- Add
- BraintreeCore
- Add BraintreeError
code
read-only property.
- Add BraintreeError
- PayPalNativeCheckoutClient
- Add new
PayPalNativeCheckoutClient
that requires only aBraintreeClient
instance. - Add new
PayPalNativeCheckoutClient#launchNativeCheckout
method that launches native checkout without throwing. - Deprecate
PayPalNativeCheckoutClient
constructor that requires bothFragment
andBraintreeClient
instances. - Deprecate
PayPalNativeCheckoutClient#tokenizePayPalAccount
method that throws an exception.
- Add new
- PayPalDataCollector
- Create new module to allow for device data collection without Kount.
- BraintreeSEPADirectDebit
- Update nonce to pull in ibanLastFour as expected
- DataCollector
- Reference Kount library only when needed to prevent JVM from loading it when it isn't being used by a merchant.
- SEPADirectDebit
- Add support for SEPA Direct Debit for approved merchants through the Braintree SDK
- SEPA Direct Debit is only available to select merchants, please contact your Customer Support Manager or Sales to start processing SEPA bank payments
- Merchants should use the
BTSepaDirectDebitClient.tokenize
method while passing in the activity andBTSEPADirectDebitRequest
- PayPalNativeCheckout (BETA)
- Requirement - Needs to be built on Java 11
- Adding in [PayPalNativeCheckout] module to use the native checkout for PayPal
- Adds
PayPalNativeCheckoutClient
that handles launching the native checkout session, the session start parameters are similar to that ofPaypalClient
with the main difference being it doesn't use the browserSwitch to checkout on web but instead consumes the native checkout sdk. This provides a much more native feel to checking out with PayPal. - Adds
PayPalNativeCheckoutAccount
to represent tokenizing a PayPal request - Adds
PayPalNativeCheckoutAccountNonce
that represents the value returned from the web - Adds
PayPalNativeCheckoutFragment
that shows how to launch the native checkout sdk - Adds
PayPalNativeCheckoutCreditFinancing
to represent the PayPal credit financing response - Adds
PayPalNativeCheckoutCreditFinancingAmount
to represent the PayPal finance amount - Adds
PayPalNativeCheckoutLineItem
to represent a line item for checkout flows - Adds
PayPalNativeCheckoutListener
to receive result notifications - Adds
PayPalNativeCheckoutPaymentIntent
to represent the payment intent for an order - Adds
PayPalNativeCheckoutPaymentResource
to represent the data returned from the internal checkout client to fetch the return url - Adds
PayPalNativeCheckoutRequest
to represent all items needed to begin the native checkout flow - Adds
PayPalNativeCheckoutVaultRequest
to represent all items needed to begin the native vault flow - Adds
PayPalNativeRequest
to represent the base items needed for checkout and vault requests - Adds
PayPalNativeCheckoutResultCallback
to listen to the result returned from the checkout response
- SharedUtils
- Update
BraintreeSharedPreferences
to no-op when a reference to AndroidEncryptedSharedPreferences
cannot be obtained (fixes #561)
- Update
- ThreeDSecure
- Bump Cardinal version to
2.2.6-2
- Bump Cardinal version to
- Add
invalidateClientToken
method toBraintreeClient
(thanks @josephyanks) - Add
isExplicitCancelation
parameter toUserCanceledException
- Trim tokenization key and client token before parsing
- DataCollector
- Use configuration environment to set Magnes environment correctly
- ThreeDSecure
- Support AndroidX and remove Jetifier requirement (fixes #315)
- Bump Cardinal version to
2.2.6-1
- Fix null pointer error in V2 UI customization
- Deprecate
ThreeDSecureV2BaseCustomization
- Deliver browser switch result asynchronously on main thread
- SamsungPay
- Support AndroidX and remove Jetifier requirement
- Local Payment
- Deliver browser switch result asynchronously on main thread
- PayPal
- Deliver browser switch result asynchronously on main thread (fixes #500)
- Braintree Core
- Add
ClientTokenProvider
interface for asynchronously fetching client token authorization - Add new
BraintreeClient
constructors that acceptClientTokenProvider
- Update pinned certificates used by
BraintreeGraphQLClient
- Add
- Google Pay
- Add
GooglePayListener
to receive results from the Google Pay flow - Deprecate methods requiring a callback in favor of listener pattern
- Add
- ThreeDSecure
- Add
ThreeDSecureListener
to receive results from the 3DS flow - Deprecate methods requiring a callback in favor of listener pattern
- Add
- Venmo
- Add
VenmoListener
to receive results from the Venmo flow - Deprecate methods requiring a callback in favor of listener pattern
- Add
- PayPal
- Add
PayPalListener
to receive results from the PayPal flow - Deprecate methods requiring a callback in favor of listener pattern
- Add
- Local Payment
- Add
LocalPaymentListener
to receive results from the Local Payment flow - Deprecate methods requiring a callback in favor of listener pattern
- Add
- PayPal
- Fix issue where billing agreement description was not showing (fixes #509)
- Venmo
- Fix issue where null value causes VenmoAccountNonce#fromJSON() to throw.
- GooglePay
- Deprecate
googleMerchantId
- Bump
play-services-wallet
version to18.1.3
- Deprecate
- SharedUtils
- Use byte array to hold
HttpRequest
data. Dispose data immediately after making http request.
- Use byte array to hold
- BraintreeCore
- Bump
browser-switch
version to2.1.1
- Bump
- SharedPreferences
- Encrypt shared preferences data stored by SDK (fixes #440)
- Local Payments
- Add
displayName
toLocalPaymentRequest
- Add
- DataCollector
- Fix memory leak from
PayPalDataCollector
(fixes #419)
- Fix memory leak from
- Local Payments
- Add
displayName
toLocalPaymentRequest
- Add
- PayPal
- Fix issue that caused user cancelations from PayPal browser flow to be incorrectly reported as failures
- Venmo
- Make
VenmoRequest
parcelable
- Make
- ThreeDSecure
- Make
pareq
optional onThreeDSecureLookup
- Make
- Android 12 Support
- Upgrade
targetSdkVersion
andcompileSdkVersion
to API 31 - Bump
browser-switch
version to2.1.0
- Fix issue where Venmo app is not detected on Android 12 devices
- Upgrade
- BraintreeCore
- Add
BraintreeClient
constructor to allow a custom return url scheme to be used for browser and app switching
- Add
- BraintreeDataCollector
- Bump Magnes dependency to version 5.3.0
- Add
BraintreeCore
as anapi
dependency (Fixes #437)
- SamsungPay
- Add additional alias for Amex in
SamsungPay
(fixes #430)
- Add additional alias for Amex in
- ThreeDSecure
- Fix issue that causes
ThreeDSecureRequest
to throw aNullPointerException
when parceling.
- Fix issue that causes
- Core
- Bump
browser-switch
version to2.0.2
- Bump
- SamsungPay
- Add
SamsungPayClient
- Add
SamsungPayClient#goToUpdatePage()
- Add
SamsungPayClient#activateSamsungPay()
- Add
SamsungPayClient#isReadyToPay()
- Add
SamsungPayClient#startSamsungPay()
- Add
SamsungPayClient#buildCustomSheetPaymentInfo()
- Add
SamsungPayClient#updateCustomSheet()
- Add
- Core
- Make
Configuration#getSupportedCardTypes()
public
- Make
- ThreeDSecure
- Make
ThreeDSecureResult#getLookup()
public - Bump Cardinal version to
2.2.5-4
- Add
cardAddChallengeRequested
toThreeDSecureRequest
- Make
- Add
VenmoClient#isReadyToPay()
method - Bump
browser-switch
to2.0.1
(fixes #409)
- Bump Cardinal version to
2.2.5-3
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 v4 Migration Guide
- Make
PayPalRequest
and subclassesParcelable
- Add getters to data classes to improve support for Kotlin synthesized properties
- Add
displayName
property toVenmoRequest
- Bump
browser-switch
to2.0.0
- Breaking Changes
- Rename
LocalPaymentTransaction
toLocalPaymentResult
- Rename
LocalPaymentClient#approveTransaction()
toLocalPaymentClient#approvePayment()
- Make
PayPalCreditFinancing#fromJson()
package-private - Make
PayPalCreditFinancingAmount#fromJson()
package-private - Make
UnionPayCapabilities#fromJson()
package-private - Make
PaymentMethodClient#parsePaymentMethodNonces()
package-private - Return
UserCanceledException
on user cancellation - Remove
DataCollector#collectPayPalDeviceData()
- Remove
DataCollector#collectRiskData()
- Make
DataCollector#getPayPalClientMetadataId()
private - Remove
PaymentMethodClient
- Remove
PaymentMethodType
- Remove
PaymentMethodDeleteException
- Remove
GetPaymentMethodNoncesCallback
- Remove
DeletePaymentMethodNonceCallback
- Use primitives instead of boxed types where possible
- Add nullability annotations to public methods
- Remove
Context
parameter fromCardClient#tokenize()
method - Fix typo in
ThreeDSecureAdditionalInformation#getPaymentAccountIndicator()
method name
- Rename
Note: Includes all changes in 4.0.0-beta1, 4.0.0-beta2, and 4.0.0-beta3
- Add
PaymentMethodType
enum - Add
PaymentMethodNonce#getType()
method - Add wallet enabled metadata tag to
AndroidManifest.xml
ingoogle-pay
module - Bump
browser-switch
to2.0.0-beta3
- Callback
BraintreeException
on user cancellation of payment flows - Add
paymentMethodUsage
toVenmoRequest
- Breaking Changes
- Rename
DownForMaintenanceException
toServiceUnavailableException
- Remove
GoogleApiClientException
- Make
BraintreeWalletConstants
package-private - Make
PaymentMethodNonceFactory
package-private - Make
GooglePayException
constructor package-private - Make
VisaCheckoutAccount
package-private - Make
VenmoAccount
package-private - Return an
IllegalArgumentException
instead ofGoogleApiClientException
toGooglePayIsReadyToPayCallback#onResult()
when activity is null - Refactor
GetPaymentMethodNoncesCallback
to have a singleonResult()
method instead ofsuccess()
andfailure()
- Remove
Context
parameter fromPaymentMethodClient#getPaymentMethodNonces
- Rename
PaymentMethodNonce#getNonce()
togetString()
- Move
VenmoAccountNonce
toVenmo
module - Move
AuthenticationInsight
toCard
module - Move
BinData
toCard
module - Move
Card
toCard
module - Move
CardNonce
toCard
module - Move
ThreeDSecureInfo
toCard
module - Move
PayPalAccountNonce
toPayPal
module - Move
PayPalCreditFinancing
toPayPal
module - Move
PayPalCreditFinancingAmount
toPayPal
module - Move
UnionPayCapabilities
toUnionPay
module - Move
UnionPayCard
toUnionPay
module - Move
VisaCheckoutAddress
toVisaCheckout
module - Move
VisaCheckoutNonce
toVisaCheckout
module - Move
VisaCheckoutUserData
toVisaCheckout
module - Remove
PaymentMethodNonce#getTypeLabel()
method - Remove
PaymentMethodNoncesCallback
- Remove
PaymentMethodNonce#getDescription()
method BraintreeClient
constructor no longer throwsInvalidArgumentException
- Make protected static member variables
OPTIONS_KEY
,OPERATION_NAME_KEY
onPaymentMethod
package-private - Make
PaymentMethod
constructor package-private - Rename
setValidate
tosetShouldValidate
and move it fromPaymentMethod
base class toCard
subclass - Make
buildJSON()
package-private forPaymentMethod
base class and all subclasses - Remove
buildGraphQL()
method fromPaymentMethod
base class and all subclasses - Make
PaymentMethod
Parcelable
constructor package-private - Make
PaymentMethod#writeToParcel()
method package-private - Make
PaymentMethod#getDefaultSource()
method package-private - Make
PaymentMethod#getDefaultIntegration()
method package-private - Make
getApiPath()
method package-private inPaymentMethod
base class and subclasses - Remove
getResponsePaymentMethodType()
method fromPaymentMethod
base class and subclasses - Make
BaseCard
class package-private
- Rename
- Add
setCountryCode
toGooglePayRequest
- Add Google Pay support for Elo cards.
- Add
VenmoRequest
- Add new classes for 3DS2 UI Customization:
ThreeDSecureV2UiCustomization
ThreeDSecureV2ButtonCustomization
ThreeDSecureV2LabelCustomization
ThreeDSecureV2TextBoxCustomization
ThreeDSecureV2ToolbarCustomization
- Add
PayPalCheckoutRequest
- Add
PayPalVaultRequest
- Add
tokenizePayPalAccount
method toPayPalClient
- Add
requestBillingAgreement
toPayPalCheckoutRequest
- Fix issue where
onBrowserSwitchResult
crashes ifbrowserSwitchResult
is null - Add
ThreeDSecureResult
- Bump
browser-switch
to2.0.0-beta2
- Breaking Changes
- Make
AmericanExpressRewardsBalance#fromJson()
package-private - Make
TYPE
andAPI_RESOURCE_KEY
inCardNonce
package-private - Make
CardNonce#fromJson()
methods package-private - Make
CardNonce
constructor package-private - Make
TYPE
,API_RESOURCE_KEY
,PAYMENT_METHOD_DATA_KEY
,TOKENIZATION_DATA_KEY
andTOKEN_KEY
inPayPalAccountNonce
package-private - Make
PayPalAccountNonce#fromJson()
methods package-private - Make
PayPalAccountNonce
constructor package-private - Make
DATA_KEY
andTOKEN_KEY
inPaymentMethodNonce
package-private - Make
PaymentMethodNonce#fromJson()
package-private - Make
PaymentMethodNonce#parsePayentMethodNonces()
methods package-private - Make
PaymentMethodNonces
constructor package-private - Make
ThreeDSecureAuthenticationResponse#fromJson()
package-private - Make
ThreeDSecureAuthenticationResponse
constructor package-private - Make
ThreeDSecureInfo#fromJson()
package-private - Make
ThreeDSecureInfo#setThreeDSecureAuthenticationResponse()
package-private - Make
ThreeDSecureLookup#fromJson()
package-private - Make
TYPE
andAPI_RESOURCE_KEY
inVenmoAccountNonce
package-private - Make
VenmoAccountNonce#fromJson()
methods package-private - Make
VenmoAccountNonce
constructor package-private - Make
VenmoAccountNonce
parcelable constructor private - Make
TYPE
andAPI_RESOURCE_KEY
inVisaCheckoutNonce
package-private - Make
VisaCheckoutNonce#fromJson()
methods package-private - Make
VisaCheckoutNonce
constructor package-private - Make
API_RESOURCE_KEY
inGooglePayCardNonce
package-private - Make
GooglePayCardNonce#fromJson()
methods package-private - Make
GooglePayCardNonce#postalAddressFromJson()
package-private - Make
GooglePayCardNonce
constructor package-private - Make
API_RESOURCE_KEY
inLocalPaymentNonce
package-private - Make
LocalPaymentNonce#fromJson()
methods package-private - Make
LocalPaymentNonce
constructor package-private - Make
GooglePayClient#tokenize()
package-private - The
shippingMethod
property onThreeDSecureRequest
is now an enum rather than a string. Possible values:SAME_DAY
EXPEDITED
PRIORITY
GROUND
ELECTRONIC_DELIVERY
SHIP_TO_STORE
- Change default
versionRequested
onThreeDSecureRequest
toThreeDSecureVersion.VERSION_2
- Rename
uiCustomization
onThreeDSecureRequest
tov2UiCustomization
and change parameter toThreeDSecureV2UiCustomization
- Update setters on
V1UiCustomization
to remove method chaining - Change Cardinal dependency from
api
toimplementation
- Replace
VenmoClient#authorizeAccount()
withVenmoClient#tokenizeVenmoAccount()
- Rename
VenmoAuthorizeAccountCallback
toVenmoTokenizeAccountCallback
- Remove
activity
parameter fromGooglePayClient#onActivityResult()
- Remove
activity
parameter fromGooglePayClient#getTokenizationParameters()
- Update
PayPalClient#requestOneTimePayment()
to expect aPayPalCheckoutRequest
and deprecate method - Update
PayPalClient#requestBillingAgreement()
to expect aPayPalVaultRequest
and deprecate method - Make
PayPalRequest
abstract - Update
PayPalRequest
setter method names and remove method chaining - Make
PayPalAccountBuilder
package-private - Remove
ThreeDSecureClient#performVerification()
convenience overload - Remove
ThreeDSecureAuthenticationResponse
- Remove
errorMessage
andthreeDSecureAuthenticationResponse
properties fromThreeDSecureInfo
- Remove
cardNonce
property fromThreeDSecureLookup
- Remove
ThreeDSecureLookupCallback
- Remove
firstName
andlastName
properties fromThreeDSecurePostalAddress
- Update
ThreeDSecureResultCallback
to expect aThreeDSecureResult
parameter - Update
ThreeDSecureClient#continuePerformVerification()
to expect aThreeDSecureResult
parameter - Update callback type in
ThreeDSecureClient#initializeChallengeWithLookupResponse
methods - Replace
CardBuilder
withCard
- Replace
BaseCardBuilder
withBaseCard
- Replace
PaymentMethodBuilder
withPaymentMethod
- Replace
UnionPayCardBuilder
withUnionPayCard
- Replace
PayPalAccountBuilder
withPayPalAccount
- Replace
VenmoAccountBuilder
withVenmoAccount
- Replace
VisaCheckoutBuilder
withVisaCheckoutAccount
- Remove builder pattern from the following classes:
PostalAddress
GooglePayRequest
ReadyForGooglePayRequest
LocalPaymentRequest
ThreeDSecureAdditionalInformation
ThreeDSecurePostalAddress
ThreeDSecureRequest
- Rename
PayPalPaymentIntent
enums:INTENT_ORDER
toORDER
INTENT_SALE
toSALE
INTENT_AUTHORIZE
toAUTHORIZE
- Remove
paymentRequested
param fromGooglePayRequestPaymentCallback
- Refactor
BraintreeClient
constructor to take aString
instead ofAuthorization
and change parameter ordering - Make
Authorization
package-private - Make
TokenizationKey
package-private - Make
ClientToken
package-private - Make
PayPalUAT
package-private
- Make
- LocalPayment
- Fixed bug where the configuration was not returned the expected result for Local Payment Methods being enabled
- BraintreeDataCollector
- Remove Kount dependency
- Deprecate
DataCollector#collectDeviceData(BraintreeFragment, String, BraintreeResponseListener<String>)
- Kount is no longer supported via Braintree, instead please use our Fraud Protection Advanced product
- Update paypal-data-collector to 5.4.0
- Bump Cardinal version to
2.2.7-2
- Update pinned certificates used by
BraintreeGraphQLHttpClient
andBraintreeHttpClient
- Add
requestBillingAgreement
toPayPalRequest
- Bump Cardinal version to
2.2.5-4
- Upgrade
targetSdkVersion
andcompileSdkVersion
to API 31 - Bump
browser-switch
version to1.2.0
- Fix issue where Venmo and PayPal apps are not detected on Android 12 devices
- Revert release 3.17.3 (local repository does not propagate MPI aar file)
Remove Bintray dependency for Cardinal SDK (fixes #373 - Cardinal bintray credentials can now be removed)
- Bump Cardinal version to
2.2.5-2
- Add PayPal to
queries
element inAndroidManifest.xml
- Add Venmo to
queries
element inAndroidManifest.xml
(fixes issue in Android 11 not properly detecting if Venmo app is installed)
- Add a
client
for each feature:AmericanExpressClient
BraintreeClient
CardClient
DataCollector
GooglePayClient
LocalPaymentClient
PayPalClient
PaymentMethodClient
PreferredPaymentMethodsClient
ThreeDSecureClient
UnionPayClient
VenmoClient
VisaCheckoutClient
- Create callback interfaces to enforce callback pattern:
AmericanExpressGetRewardsBalanceCallback
CardTokenizeCallback
ConfigurationCallback
DataCollectorCallback
DeletePaymentMethodNonceCallback
GetPaymentMethodNoncesCallback
LocalPaymentBrowserSwitchResultCallback
LocalPaymentStartCallback
PayPalBrowserSwitchResultCallback
PayPalFlowStartedCallback
PreferredPaymentMethodsCallback
ThreeDSecureLookupCallback
ThreeDSecurePrepareLookupCallback
ThreeDSecureResultCallback
UnionPayEnrollCallback
UnionPayFetchCapabilitiesCallback
UnionPayTokenizeCallback
VenmoAuthorizeAccountCallback
VenmoOnActivityResultCallback
- Migrate
braintree-android-google-payment
intobraintree_android
- Migrate
braintree-android-visa-checkout
intobraintree_android
- Add
Configuration#getEnvironment()
- Add
Configuration#getPayPalPrivacyUrl()
- Add
Configuration#getPayPalUserAgreementUrl()
- Add
Configuration#isGooglePayEnabled()
- Add
Configuration#isLocalPaymentEnabled()
- Add
Configuration#isSamsungPayEnabled()
- Add
Configuration#isUnionPayEnabled()
- Add
Configuration#isVenmoEnabled()
- Add
Configuration#isVisaCheckoutEnabled()
- Update Visa Checkout aar dependency to version
6.6.1
- Add
LocalPaymentTransaction
to represent Local Payment transactions - Add
amount
setter toPayPalRequest
- Breaking Changes
- Bump
browser-switch
to2.0.0-beta1
- Change
GooglePayCapabilities#isGooglePayEnabled()
parameters - Create
american-express
module - Create
card
module - Create
local-payment
module - Create
pay-pal
module - Create
union-pay
module - Create
venmo
module - Remove PayPal
data-collector
module - Remove PayPal
paypal-one-touch
module - Remove
AmericanExpressListener
- Remove
AnalyticsIntentService
- Remove
AnalyticsSender
- Remove
AmericanExpressRewardsBalance
default constructor - Remove
amount
parameter fromPayPalRequest
constructor - Remove
approvalUrl
andpaymentId
properties fromLocalPaymentRequest
- Remove
Beta
interface - Remove
BraintreeApiError
- Remove
BraintreeApiErrorResponse
- Remove
BraintreeApiHttpClient
- Remove
BraintreeBrowserSwitchActivity
- Remove
BraintreeCancelListener
- Remove
BraintreeErrorListener
- Remove
BraintreeFragment
- Remove
BraintreeListener
- Remove
BraintreePaymentResult
- Remove
BraintreePaymentResultListener
- Remove
BrowserSwitchException
constructor - Remove
ConfigurationListener
- Remove
ConfigurationManager
- Remove
Configuration#getCardConfiguration()
- Remove
Configuration#getGraphQL()
- Remove
Configuration#getGooglePayment()
- Remove
Configuration#getKount()
- Remove deprecated 3DS
performVerification
methods - Remove
InstallationIdentifier
- Remove
LocalPaymentResult
- Remove
PaymentMethodNonceCreatedListener
- Remove
PaymentMethodNonceDeletedListener
- Remove
PaymentMethodNoncesUpdatedListener
- Remove
PaymentMethodNotAvailableException
- Remove
PayPalApprovalCallback
- Remove
PayPalApprovalHandler
- Remove
PayPalProductAttributes
- Remove
PayPalTwoFactorAuth
- Remove
PayPalTwoFactorAuthCallback
- Remove
PayPalTwoFactorAuthRequest
- Remove
PayPalTwoFactorAuthResponse
- Remove
PreferredPaymentMethodsListener
- Remove
QueuedCallback
- Remove
ThreeDSecureLookupListener
- Remove
ThreeDSecurePrepareLookupListener
- Remove
TokenizationParametersListener
- Remove
UnionPayListener
- Remove
VisaCheckoutConstants
- Remove
VisaCheckoutNotAvailableException
- Rename
AmericanExpress
toAmericanExpressClient
- Rename
Card
toCardClient
- Rename
GooglePayment
toGooglePayClient
- Rename
LocalPayment
toLocalPaymentClient
- Rename
PayPal
toPayPalClient
- Rename
PaymentMethod
toPaymentMethodClient
- Rename
PreferredPaymentMethods
toPreferredPaymentMethodsClient
- Rename
ThreeDSecure
toThreeDSecureClient
- Rename
UnionPay
toUnionPayClient
- Rename
Venmo
toVenmoClient
- Rename
VisaCheckout
toVisaCheckoutClient
- Rename
core
module toshared-utils
- Rename
LocalPaymentResult
toLocalPaymentNonce
- Rename
braintree
module tobraintree-core
- Rename
GooglePayment
classes toGooglePay
- Rename
BraintreeRequestCodes.GOOGLE_PAYMENT
toBraintreeRequestCodes.GOOGLE_PAY
- Make
AnalyticsConfiguration
package-private - Make
AnalyticsDatabase
package-private - Make
AnalyticsEvent
package-private - Make
AppHelper
package-private - Make
AppSwitchNotAvailableException
constructor package-private - Make
AuthenticationException
constructor package-private - Make
AuthorizationException
package-private - Make
BraintreeApiConfiguration
package-private - Make
BraintreeError
constructors package-private - Make
BraintreeException
package-private - Make
BraintreeGraphQLHttpClient
package-private - Make
BraintreeHttpClient
package-private - Make
BraintreeSharedPreferences
package-private - Make
BraintreeResponseListener
package-private - Make
CardConfiguration
package-private - Make
ClassHelper
package-private - Make
ConfigurationException
constructor package-private - Make
DeviceInspector
package-private - Make
DownForMaintenanceException
constructor package-private - Make
ErrorWithResponse
constructors package-private - Make
GraphQLConfiguration
package-private - Make
GraphQLConstants
package-private - Make
GraphQLQueryHelper
package-private - Make
GooglePaymentConfiguration
package-private - Make
HttpClient
package-private - Make
HttpResponseCallback
package-private - Make
IntegrationType
package-private - Make
InvalidArgumentException
package-private - Make
Json
package-private - Make
KountConfiguration
package-private - Make
ManifestValidator
package-private - Make
MetadataBuilder
package-private - Make
PaymentMethodDeleteException
constructor package-private - Make
PayPalConfiguration
package-private - Make
PayPalDataCollector
package-private - Make
PayPalDataCollectorRequest
package-private - Make
PayPalPaymentResource
package-private - Make
PostalAddressParser
package-private - Make
PreferredPaymentMethodsResult
constructor package-private - Make
RateLimitException
constructor package-private - Make
SamsungPayConfiguration
package-private - Make
ServerException
constructor package-private - Make
SignatureVerification
package-private - Make
StreamHelper
package-private - Make
ThreeDSecureV1BrowserSwitchHelper
package-private - Make
TLSSocketFactory
package-private - Make
UnexpectedException
constructor package-private - Make
UnionPayConfiguration
package-private - Make
UnprocessableEntityException
constructor package-private - Make
UpgradeRequiredException
constructor package-private - Make
UUIDHelper
package-private - Make
VenmoConfiguration
package-private - Make
VisaCheckoutConfiguration
package-private - Move all classes to
com.braintreepayments.api
package
- Bump
- Add
bic
(Bank Identification Code) toLocalPaymentRequest
- Bump Cardinal version to
2.2.5-1
- Add
accountType
toThreeDSecureRequest
- Add
offerPayLater
toPayPalRequest
- Add
paymentTypeCountryCode
toLocalPaymentRequest
- Upgrade PayPal Data Collector to 5.1.1 (fixes #325)
- Bump Cardinal version to
2.2.4-1
(fixes #305) - Bump
browser-switch
to1.1.3
- Update
compileSdkVersion
andtargetSdkVersion
to 30
- Expose cardholder name on
CardNonce
. - Expose expiration month and year on
CardNonce
. - Update
browser-switch
module to1.1.0
. - Fix bug where
onError
callback was invoked instead of theonCancel
callback in the Local Payment Method flow (fixes #299, thanks @vijayantil1) - Fix bug where
getReturnUrlScheme
is called and an Activity is no longer attached to the fragment (fixes #308, thanks @hakanbagci)
- Update
browser-switch
module to1.0.0
- Make PayPalUAT::Environment enum public
- Add Card#tokenize overload to allow a custom
PaymentMethodNonceCallback
to be provided.
- Changed
Configuration#isPayPalEnabled
to no longer consider deprecated integration requirements.
- Add default
uiCustomization
toThreeDSecureRequest
to prevent null pointer exception when interacting with Cardinal SDK
- Bump Cardinal version to 2.2.3-2
- Check if Fragment is active before handling Pay with PayPal result (fixes #295, thanks @brudaswen)
- Allow new BraintreeFragment instances to be created using FragmentActivity
- Add support for authorizing the Braintree SDK with a
PayPalUAT
(universal access token) - Fix bug that accepted raw JSON string as valid authorization to
BraintreeFragment.newInstance(...)
- Add
threeDSecureAuthenticationId
field toThreeDSecureInfo
- Update
braintree-android-google-payment
module to3.3.1
- Update Cardinal SDK to
2.2.2-1
- Fix bug in 3DS1 browser switch around accented characters in the redirect button and description (fixes #288)
- Add support for basic UI customization of 3DS1 flows. See
ThreeDSecureV1UiCustomization
.
- Update Cardinal SDK to
2.2.1-2
- Use
synchronized
when adding to callback queue inBraintreeFragment
(thanks @skauss) - Update paypal-data-collector to 4.1.2
- Update
braintree-android-google-payment
module to3.1.0
- Fix a bug so that
BraintreeFragment.newInstance
returns a new fragment whenever a new authorization string is passed in (Resolves issue #274. Thanks @krunk4ever and @bramley-stride.)
- Update 3DS
prepareLookup
method to function asynchronously to wait for Cardinal SDK - Add ability to request
AuthenticationInsight
when tokenizing a credit card, which can be used to make a decision about whether to perform 3D Secure verification - Set error message on
ThreeDSecureInfo
when 3D Secure 2.0 challenge fails - Include reference to Cardinal's docs for
uiCustomization
property onThreeDSecureRequest
. - Add
requiresUserAuthentication
method toThreeDSecureLookup
- Add support for
PayPalLineItem
- Add authentication and lookup transaction status information to ThreeDSecureInfo
- Add ability to customize UI for 3D Secure challenge views
- Fix race condition that caused inconsistent 3DS version flows
- Add 3DSecure authentication details to card nonce
- Add
acsTransactionId
,threeDSecureServerTransactionId
andparesStatus
fields toThreeDSecureInfo
- Update Cardinal SDK to 2.1.4-1
- Send analytics timestamps in milliseconds
- Add additional fields to ThreeDSecureInfo
- Fix potential crash when 3DSecure 2.0 JWT is not available
- Correctly includes the 3DSecure 2.0 module
- Add 3DS 2 Support
- Update 3DS redirect to newest version
- BraintreeFragment can now attach to a Fragment (fixes #252)
- Update google-payment to 3.0.1
- Update endpoint for creating local payments
- Bump minSdkVersion to 21
- Convert to AndroidX
- BraintreeFragment moves to the support fragment
- Requires AppCompatActivity to attach the BraintreeFragment to
- Removed Visa Checkout 1.0.0 as a dependency
- Add Visa Checkout's dependency to your app to get the latest version
- Removed deprecated ThreeDSecureWebView flow
- Removed deprecated Venmo#isVenmoWhitelisted(ContentResolver)
- Removed deprecated method from PostalAddress
- Removed deprecated country setters
- Removed deprecated methods from DataCollector
- Removed deprecated PayPalOneTouchActivity
- Removed deprecated Ideal
- Rename AndroidPay classes to GooglePayment
- Deprecate PayPal Future Payments, use PayPal Billing Agreements
- Deprecate AndroidPayConfiguration, use the GooglePaymentConfiguration alias
- Fix null address properties on PayPalAccountNonce
- Those addresses should always be at least an empty PostalAddress
- Google Pay
- Add groundwork for v2 compatibility
- Split PostalAddress into PostalAddress and PostalAddressParser
- Deprecates PostalAddress.fromJson - use PostalAddressParser.fromJson
- Add fromUserAddressJsonn to PostalAddressParser
- Add additional fields
- Move Google Payment to a separate module
- Downgrade browser-switch to 0.1.6
- Exclude customtabs from browser-switch dependency
- Upgrade browser-switch to 0.1.7 fixes Chrome Custom Tab integration when using Jetifier to use AndroidX
- Upgrade Android SDK to 28
- Fix PayPal JavaDoc
- Local Payments
- Upgrade PayPal Data Collector to 4.0.3
- Add optional merchant account Id to PayPalRequest
- Add openVenmoAppPageInGooglePlay method which opens Venmo on the Google Play
- Fix NoClassDefFoundError compile error for PayPalDataCollector
- Fix InvalidPathException error
- Add
PaymentMethod#deletePaymentMethod
which allows customers to remove their vaulted payment methods - Fix DataCollector not being available for instant run builds
- Fix issue with TLS cipher in API < 21
- Removed unused PayPal analytics event
- Add shippingAddressEditable to PayPalRequest
- Fix issue where address override was not set for PayPal billing agreements
- Update 3D Secure redirect URL
- 3D Secure
- Add support for American Express SafeKey params
- Update PayPalDataCollector library to 3.1.6
- Catch possible SQLite exceptions
- Move Visa Checkout to separate module
- Update Visa Checkout to 5.5.2
- Update SDK to 27
- Add support for Venmo profiles
- Update PayPalDataCollector library to 3.1.5
- Update GooglePaymentException to be parcelable
- Add browser switch support to 3D Secure integrations
- Internal performance optimizations
- Deprecate
countryName
,countryCodeAlpha2
,countryCodeAlpha3
, andcountryCodeNumeric
in favor ofcountryCode
inCardBuilder
andUnionPayCardBuilder
.
- Support
lastFour
inGooglePayCardNonce
- Add Google Pay branding
- Add support for iDEAL payments
- Check package name is valid for PayPal Wallet switch
- Fix phoneNumberRequired in GooglePayment
- Add AmericanExpress support with getRewardsBalance method
- Use ExecutorService for async database operations
- Increase minimum version of Google Play Services Wallet to 11.4.0
- Add support for the Google Payments API
- Deprecate Android Pay
- Add additional billing address params to
CardBuilder
- Fix potential crash due to optional Visa Checkout dependency
- Fix potential crash due to optional Google Play Services dependency
- Upgrade Kount DataCollector to 3.2
- Stop using dependency ranges (braintree/android-card-form#29)
- Relax
PRNGFixes
check forPRNGSecureRandomProvider
to prevent race condition with other providers (#151) - Stop sending
Content-Type
header for GET requests (#155) - Upgrade browser-switch to 0.1.4 to prevent losing Chrome Custom Tab when switching to a password manager or other app
- Add additional bin data to card based payment methods
- Add DOM and database storage to
ThreeDSecureWebView
to improve compatibility with some bank web pages (#159) - Update compile and target SDK versions to 26
- Any support library dependencies must now be 26.0.0 or newer
- Use custom task instead of overriding the clean task (fixes #153)
- Accept third party cookies in ThreeDSecureWebView for Lollipop and above
- Add PayPal Credit for Billing Agreements
- Include cause in
ConfigurationException
(#143) - Ignore ProGuard warnings for Visa Checkout (fixes #144)
- Fix Android Pay behavior during configuration changes (fixes #145, #146, #147)
- Fix crash when run in an Android Instant App
- Fix non-optional
data-collector
dependency in Braintree - Create
BraintreeRequestCodes
for use withBraintreeCancelListener#onCancel
- Move PayPal browser switches to use browser-switch-android
- Add option to set display name in
PayPalRequest
- Add option to set landing page type in
PayPalRequest
- Add option to enable PayPal Credit in
PayPalRequest
- Add Visa Checkout as a payment method
- Prevent dependency resolution of alpha major versions of support libraries
- Improve
GoogleApiClientException
to include error type as well as reason code - Changes to PayPalDataCollector to make it easier to use
- Fix NPE in
AndroidPay#changePaymentMethod
(fixes #139) Venmo#authorizeAccount
will now correctly vault the payment method when the vault option is true- Fix missing client metadata ids in
PayPalAccountNonce
s - Update paypal-data-collector to 3.1.4
- Add workaround for Kount/kount-android-sdk#2
- Fix error returned by
AndroidPay#changePaymentMethod
- Fix back button during PayPal browser switch on Samsung devices (fixes #137)
- Add new intent option to
PayPalRequest
- Fix crash when excluding the PayPal dependency
- 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.
- Improve PayPal address validations
- Work around
NullPointerException
inBraintreeFragment#newInstance
(fixes #125) - Document supported locales for PayPal
- Fix rare
NullPointerException
(#128)
- Fix ProGuard rules (fixes #124)
- Fix
NullPointerException
when using deprecated DataCollector methods - Update compile and target SDK versions to 25
- Add
BraintreeFragment#getListeners
to get a list of all the registered listeners - Upgrade paypal-data-collector to 3.1.3
- Upgrade Kount DataCollector to 3.1
- Add
AndroidPay#requestAndroidPay
andAndroidPay#changePaymentMethod
methods to simplify requesting Android Pay from a user and changing the backing payment method. - Include ProGuard directives in the SDK (#120)
- Work around bug in
JSONObject#optString
- Use
FragmentTransaction#commitNow
andFragmentManager#executePendingTransactions
inBraintreeFragment#newInstance
to synchronously set upBraintreeFragment
and avoid race conditions caused by asynchronousFragment
setup.
- Update
AndroidPayCardNonce
description to include card type and last 4
- Support changing user call to action in PayPal flows, see
PayPalRequest#userAction
- Fix validate option not being sent when set to false in
PaymentMethodBuilder
- Add merchant supported card types to
Configuration
- Expose methods on
BraintreeFragment
for getting cached payment methods - Update
paypal-data-collector
to 3.1.2 - Move Drop-In to it's own repo
- 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
- Many additional structural and name changes. For more details, see the migration guide and the source code
- Fixes
- Increase minimum version of Google Play Services Wallet to 8.0.0 to prevent
VerifyError
- Increase minimum version of Google Play Services Wallet to 8.0.0 to prevent
- Fixes
- Fix Android Pay bug caused by shared state between Activities
- Update PayPal SDK to 2.11.1 (fixes #48)
- Fixes
- Fix tokenization failure in Coinbase
- Update gradle plugin to 1.3.1
- Update build tools to 23.0.1
- Update
compileSdkVersion
andtargetSdkVersion
to 23 - Update PayPal SDK to 2.10.0
- Increase maximum version of Google Play Services to 9.0.0 (#50)
- Set compile options to use Java 7
- Features
- Add support for Coinbase. Please note: this API is in beta and subject to change.
- Fixes
- Update PayPal SDK to 2.9.10
- Fixes
- Fix incorrect custom integration in demo app
- Fix incorrect selected payment method in Drop-in after creating a new payment method
- Fix
NoClassDefFoundError
crash in Drop-in
- Update PayPal SDK to 2.9.8
- Improvements
- Follow Android convention around button and text casing in Drop-in
- Update android-card-form to 2.0.1
- Improvements
- BraintreeData can now be optionally excluded
- Fixes
- Remove optional dependency from full jar
- Update PayPal SDK to 2.9.7
- Add support for additional PayPal scopes to
PaymentButton
- Fixes
- Return error instead of silently failing setup with bad client tokens
- Fix
NoClassDefFoundError
in Drop-in caused by optional dependency
- Fixes
- Fix
NoClassDefFoundError
in Drop-in andPaymentButton
caused by optional dependency (#34)
- Fix
- Update PayPal SDK to 2.9.6
- Update gradle plugin to 1.2.3
- Update build tools to 22.0.1
- Features
- Add Android Pay support. Please note: this API is in beta and subject to change.
- Add
Braintree#onActivityResult
method - Add support for additional PayPal scopes
- A
List
of additional scopes may be passed toBraintree#startPayWithPayPal
PayPalAccount#getBillingAddress
can be used to retrieve the billing address when the address scope is requested.
- A
- Update PayPal SDK to 2.9.5
- Switch to OkHttp for Demo app
- Improvements
- Add methods to persist state across rotations
- Fixes
- Update PayPal SDK to 2.9.4
- Move
CardForm
to separate repo - Deprecate
Braintree#getInstance
in favor ofBraintree#setup
- Fixes
- Remove metadata from assets, fixes #16
- Update gradle plugin to 1.1.2
- Update build tools to 22
- Update
compileSdkVersion
andtargetSdkVersion
to 22 - Update PayPal SDK to 2.9.0
- Features
- Add support for 3D Secure. Please note: this API is in beta and subject to change.
- Fixes
- Fix missing expiration date float label (#21)
- Remove Drop-In support for Eclipse
- Open source card form separate from Drop-In
- Update PayPal SDK to 2.8.5
- card.io is no longer included in the SDK
- Update Espresso to 2.0
- Remove unused PayPal
PROFILE
scope
- Update gradle plugin to 0.14.1
- Update build tools to 21.1.1
- Update PayPal SDK to 2.7.3
- Remove
android:allowBackup="false"
from library manifests, apps will now be able to choose if they allow backups - Remove
ACCESS_WIFI_STATE
permission - Improvements
- Add localizations for more locales (da-rDK, en-rAU, es, fr-rCA, iw-rIL, nl, no, pl, pt, ru, sv-rSE, tr, zh-rCN)
- Add initial right to left language support
- Add type safety to
Braintree#addListener(Listener)
. Thanks @adstro!
- Increase
targetSdkVersion
to 21 - Increase
buildToolsVersion
to 21.0.2 - Fixes
- Fix max length on
EditText
s - Fix crash caused by
PRNGFixes
- Fix max length on
- Improvements
- Update PayPal SDK
- Add first and last name to
CardBuilder
- Fixes
- Fix incorrectly named language resource directories
- Fixes
- Work around manifest merging issues on newer build plugins
- minSdk is now 10
- Fixes
- Set max length on card field for unknown card types in Drop-In
- Update PayPal SDK to fix rotation bug
- Fix edge cases in expiration entry in Drop-In
- Improvements
- Error messages are now returned from Drop-In
- Drop-In auto advances to next field now
- Fixes
- Fix crash caused by too large request code in
PaymentButton
- Resume the payment method form after rotation
- Fix crash caused by too large request code in
- Improvements
- Updated PayPal SDK
- email scope is now requested in all PayPal requests
correlationId
is now included in the device data string returned fromBraintreeData#collectDeviceData
- Updated PayPal SDK
- Fixes
- BraintreeApi release now includes the PayPal SDK again. Sorry!
- Improvements
- All assets are now namespaced to avoid any conflicts on import.
- Updated PayPal SDK
- Features
- App switch based payments for PayPal and Venmo (One Touch)
- No changes for existing Pay With PayPal integrations
- See the docs for more information
- Unified payment button (
PaymentButton
) for PayPal and/or Venmo payments
- App switch based payments for PayPal and Venmo (One Touch)
- Improvements
- Minor bugfixes and internal tweaks
- Deprecations
PayPalButton
is deprecated in favor ofPaymentButton
- Breaking Change
- BraintreeData returns
deviceData
instead ofdeviceSessionId
oncollectDeviceData
- BraintreeData returns
- Improvements
- References
sdk-manager-plugin
from vendor to simplify build process
- References
- Improvements
- CardBuilder now accepts billing address fields other than postal code (credit: @chiuki)
- Packaging
- Fixed an issue building Drop-In in Eclipse
- Improvements
- BraintreeApi no longer depends on OkHttp
- Added localizations for more locales (UK, FR, DE, IT)
- Fixes
- Fixed disabled submit button in landscape
- Fixed next field button in landscape
- Add max length to expiration date and prevent user from typing illegal characters
- Move to sdk-manager-plugin for CI dependencies
- Packaging
- Set Braintree package to default to AAR instead of ZIP
- Improvements
- Added assets for a wider range of resolutions
- Enforce maximum length for card and postal code fields
- Added README for fraud tools
- Packaging
- Improvements for usage in environments other than Maven or Gradle
- Fixes
- Fixed lint errors
- Fixes
- Fix crash on Android SDK < 19
- Add PayPal
correlationId
to PayPal account creation
- Fixes
- Improved packaging for non-Gradle uses of SDK
- Fixes
- Attach Javadocs and sources to Maven Central build.
- Breaking Changes
- Bump
minSdkVersion
to 21.
- Bump
- Fix
allowedCardNetworks
inisReadyToPayRequest
to be uppercased. Thanks @fcastagnozzi.
- Add support for Google Pay's
existingPaymentMethodRequired
option
- Add support for
isNetworkTokenized
Fix setting the correct version in metadata
- Add check in
requestPayment
to avoid Null Pointer Exception
- Resolve issue where optional shipping parameters were treated as if they were required
- Use GooglePayment PayPal client ID
- Convert to AndroidX
- Replace AndroidPayConfiguration with GooglePaymentConfiguration
- Disable PayPal payment method in Google Payment when the merchant is not able to process PayPal
- Add support for Google Pay v2
- Remove support for Google Pay v1
- To continue using v1, add google-payment:1.0.0 to your build.gradle
- v1 will remain the defaul for braintree android until the next major version bump
- Replace all UserAddress objects with PostalAddress objects
- Public release of v.zero SDK