- GooglePay
- Bump
play-services-walletversion to19.2.1 - Add
totalPriceLabeltoGooglePayRequest
- 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
compileSdkVersionandtargetSdkVersionto API 34
- Upgrade
- Android 14 Support
- ThreeDSecure
- Bump Cardinal version to
2.2.7-4
- Bump Cardinal version to
- BraintreeCore
- Bump
browser-switchversion 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
PayPalNativeCheckoutVaultRequestflow 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-switchversion 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
PaymentContextGraphQL 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
VenmoActivityResultContractwhere a user cancelation is being misinterpreted as an unknown exception because the intent data isnull(fixes #734) - Add the following properties to
VenmoRequest:collectCustomerBillingAddresscollectCustomerShippingAddresstotalAmountsubTotalAmountdiscountAmounttaxAmountshippingAmountlineItems
- 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
setUiTypeandsetRenderTypestoThreeDSecureRequest
- Bump Cardinal version to
- PayPalNativeCheckout (BETA)
- Bump native-checkout version to release
0.112.0
- Bump native-checkout version to release
- ThreeDSecure
- Guard
ThreeDSecureClientagainst potential Cardinal SDK runtime exceptions
- Guard
- ThreeDSecure
- Catch Null Pointer Exception in
ThreeDSecureActivityto prevent crash (fixes #715)
- Catch Null Pointer Exception in
- DataCollector
- Use
applicationContextinDataCollector#collectDeviceData()callback to prevent potentialActivityleaks
- Use
- GooglePay
- Fix issue that causes
GooglePayNonce#isNetworkTokenizedto always returnfalseafter being parceled
- Fix issue that causes
- ThreeDSecure
- Catch
TransactionTooLargeExceptionto 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
PayPalClientattempts 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
PayPalNativeCheckoutClientwhen 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
sourceCardLast4property when parsing Samsung Pay response
- Support legacy
- SharedUtils
- Revert androidx
security-cryptodependency to1.1.0-alpha03(1.1.0-alpha04requires a compile target of 33)
- Revert androidx
- SharedUtils
- Bump androidx
security-cryptodependency 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
PayPalNativeCheckoutAccountNoncewhere theintentwas not being set correctly from thePayPalNativeCheckoutRequest - Breaking changes
PayPalNativeRequestrequires areturnUrlto redirect correctly after authentication
- Bump native-checkout version to
- ThreeDSecure
- Apply
Theme.AppCompattoThreeDSecureActivity
- Apply
- SamsungPay
- Support legacy
singleUseTokenproperty when parsing Samsung Pay response (fixes #668)
- Support legacy
- BraintreeCore
- Allow uppercase characters in default return url scheme
- ThreeDSecure
- Add
setRequestedExemptionTypetoThreeDSecureRequest
- 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
ThreeDSecureActivitylaunch without extras (fixes #641)
- Defensively guard against
- BraintreeCore
- Bump
browser-switchversion 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
BraintreeGraphQLClientandBraintreeHttpClient
- 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
BraintreeSharedPreferencesto gracefully degrade whenEncryptedSharedPreferencesfails (fix for #619) - Add new
BraintreeSharedPreferencesExceptionto notify when an error occurs while interacting with shared preferences
- Allow
- GooglePay
- Bump
play-services-walletversion to19.1.0
- Bump
- SharedUtils
- Add explicit key alias for encrypted shared prefs (potential fix for #604)
- Android 13 Support
- Upgrade
targetSdkVersionandcompileSdkVersionto API 33
- Upgrade
- ThreeDSecure
- Bump Cardinal version to
2.2.7-2
- Bump Cardinal version to
- BraintreeCore
- Bump
browser-switchversion 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
BraintreeDeepLinkActivityto capture deep link results on behalf of the host application
- Add
- BraintreeCore
- Add BraintreeError
coderead-only property.
- Add BraintreeError
- PayPalNativeCheckoutClient
- Add new
PayPalNativeCheckoutClientthat requires only aBraintreeClientinstance. - Add new
PayPalNativeCheckoutClient#launchNativeCheckoutmethod that launches native checkout without throwing. - Deprecate
PayPalNativeCheckoutClientconstructor that requires bothFragmentandBraintreeClientinstances. - Deprecate
PayPalNativeCheckoutClient#tokenizePayPalAccountmethod 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.tokenizemethod 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
PayPalNativeCheckoutClientthat handles launching the native checkout session, the session start parameters are similar to that ofPaypalClientwith 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
PayPalNativeCheckoutAccountto represent tokenizing a PayPal request - Adds
PayPalNativeCheckoutAccountNoncethat represents the value returned from the web - Adds
PayPalNativeCheckoutFragmentthat shows how to launch the native checkout sdk - Adds
PayPalNativeCheckoutCreditFinancingto represent the PayPal credit financing response - Adds
PayPalNativeCheckoutCreditFinancingAmountto represent the PayPal finance amount - Adds
PayPalNativeCheckoutLineItemto represent a line item for checkout flows - Adds
PayPalNativeCheckoutListenerto receive result notifications - Adds
PayPalNativeCheckoutPaymentIntentto represent the payment intent for an order - Adds
PayPalNativeCheckoutPaymentResourceto represent the data returned from the internal checkout client to fetch the return url - Adds
PayPalNativeCheckoutRequestto represent all items needed to begin the native checkout flow - Adds
PayPalNativeCheckoutVaultRequestto represent all items needed to begin the native vault flow - Adds
PayPalNativeRequestto represent the base items needed for checkout and vault requests - Adds
PayPalNativeCheckoutResultCallbackto listen to the result returned from the checkout response
- SharedUtils
- Update
BraintreeSharedPreferencesto no-op when a reference to AndroidEncryptedSharedPreferencescannot be obtained (fixes #561)
- Update
- ThreeDSecure
- Bump Cardinal version to
2.2.6-2
- Bump Cardinal version to
- Add
invalidateClientTokenmethod toBraintreeClient(thanks @josephyanks) - Add
isExplicitCancelationparameter 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
ClientTokenProviderinterface for asynchronously fetching client token authorization - Add new
BraintreeClientconstructors that acceptClientTokenProvider - Update pinned certificates used by
BraintreeGraphQLClient
- Add
- Google Pay
- Add
GooglePayListenerto receive results from the Google Pay flow - Deprecate methods requiring a callback in favor of listener pattern
- Add
- ThreeDSecure
- Add
ThreeDSecureListenerto receive results from the 3DS flow - Deprecate methods requiring a callback in favor of listener pattern
- Add
- Venmo
- Add
VenmoListenerto receive results from the Venmo flow - Deprecate methods requiring a callback in favor of listener pattern
- Add
- PayPal
- Add
PayPalListenerto receive results from the PayPal flow - Deprecate methods requiring a callback in favor of listener pattern
- Add
- Local Payment
- Add
LocalPaymentListenerto 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-walletversion to18.1.3
- Deprecate
- SharedUtils
- Use byte array to hold
HttpRequestdata. Dispose data immediately after making http request.
- Use byte array to hold
- BraintreeCore
- Bump
browser-switchversion to2.1.1
- Bump
- SharedPreferences
- Encrypt shared preferences data stored by SDK (fixes #440)
- Local Payments
- Add
displayNametoLocalPaymentRequest
- Add
- DataCollector
- Fix memory leak from
PayPalDataCollector(fixes #419)
- Fix memory leak from
- Local Payments
- Add
displayNametoLocalPaymentRequest
- Add
- PayPal
- Fix issue that caused user cancelations from PayPal browser flow to be incorrectly reported as failures
- Venmo
- Make
VenmoRequestparcelable
- Make
- ThreeDSecure
- Make
pareqoptional onThreeDSecureLookup
- Make
- Android 12 Support
- Upgrade
targetSdkVersionandcompileSdkVersionto API 31 - Bump
browser-switchversion to2.1.0 - Fix issue where Venmo app is not detected on Android 12 devices
- Upgrade
- BraintreeCore
- Add
BraintreeClientconstructor 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
BraintreeCoreas anapidependency (Fixes #437)
- SamsungPay
- Add additional alias for Amex in
SamsungPay(fixes #430)
- Add additional alias for Amex in
- ThreeDSecure
- Fix issue that causes
ThreeDSecureRequestto throw aNullPointerExceptionwhen parceling.
- Fix issue that causes
- Core
- Bump
browser-switchversion 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
cardAddChallengeRequestedtoThreeDSecureRequest
- Make
- Add
VenmoClient#isReadyToPay()method - Bump
browser-switchto2.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
PayPalRequestand subclassesParcelable - Add getters to data classes to improve support for Kotlin synthesized properties
- Add
displayNameproperty toVenmoRequest - Bump
browser-switchto2.0.0 - Breaking Changes
- Rename
LocalPaymentTransactiontoLocalPaymentResult - 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
UserCanceledExceptionon 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
Contextparameter 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
PaymentMethodTypeenum - Add
PaymentMethodNonce#getType()method - Add wallet enabled metadata tag to
AndroidManifest.xmlingoogle-paymodule - Bump
browser-switchto2.0.0-beta3 - Callback
BraintreeExceptionon user cancellation of payment flows - Add
paymentMethodUsagetoVenmoRequest - Breaking Changes
- Rename
DownForMaintenanceExceptiontoServiceUnavailableException - Remove
GoogleApiClientException - Make
BraintreeWalletConstantspackage-private - Make
PaymentMethodNonceFactorypackage-private - Make
GooglePayExceptionconstructor package-private - Make
VisaCheckoutAccountpackage-private - Make
VenmoAccountpackage-private - Return an
IllegalArgumentExceptioninstead ofGoogleApiClientExceptiontoGooglePayIsReadyToPayCallback#onResult()when activity is null - Refactor
GetPaymentMethodNoncesCallbackto have a singleonResult()method instead ofsuccess()andfailure() - Remove
Contextparameter fromPaymentMethodClient#getPaymentMethodNonces - Rename
PaymentMethodNonce#getNonce()togetString() - Move
VenmoAccountNoncetoVenmomodule - Move
AuthenticationInsighttoCardmodule - Move
BinDatatoCardmodule - Move
CardtoCardmodule - Move
CardNoncetoCardmodule - Move
ThreeDSecureInfotoCardmodule - Move
PayPalAccountNoncetoPayPalmodule - Move
PayPalCreditFinancingtoPayPalmodule - Move
PayPalCreditFinancingAmounttoPayPalmodule - Move
UnionPayCapabilitiestoUnionPaymodule - Move
UnionPayCardtoUnionPaymodule - Move
VisaCheckoutAddresstoVisaCheckoutmodule - Move
VisaCheckoutNoncetoVisaCheckoutmodule - Move
VisaCheckoutUserDatatoVisaCheckoutmodule - Remove
PaymentMethodNonce#getTypeLabel()method - Remove
PaymentMethodNoncesCallback - Remove
PaymentMethodNonce#getDescription()method BraintreeClientconstructor no longer throwsInvalidArgumentException- Make protected static member variables
OPTIONS_KEY,OPERATION_NAME_KEYonPaymentMethodpackage-private - Make
PaymentMethodconstructor package-private - Rename
setValidatetosetShouldValidateand move it fromPaymentMethodbase class toCardsubclass - Make
buildJSON()package-private forPaymentMethodbase class and all subclasses - Remove
buildGraphQL()method fromPaymentMethodbase class and all subclasses - Make
PaymentMethodParcelableconstructor 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 inPaymentMethodbase class and subclasses - Remove
getResponsePaymentMethodType()method fromPaymentMethodbase class and subclasses - Make
BaseCardclass package-private
- Rename
- Add
setCountryCodetoGooglePayRequest - Add Google Pay support for Elo cards.
- Add
VenmoRequest - Add new classes for 3DS2 UI Customization:
ThreeDSecureV2UiCustomizationThreeDSecureV2ButtonCustomizationThreeDSecureV2LabelCustomizationThreeDSecureV2TextBoxCustomizationThreeDSecureV2ToolbarCustomization
- Add
PayPalCheckoutRequest - Add
PayPalVaultRequest - Add
tokenizePayPalAccountmethod toPayPalClient - Add
requestBillingAgreementtoPayPalCheckoutRequest - Fix issue where
onBrowserSwitchResultcrashes ifbrowserSwitchResultis null - Add
ThreeDSecureResult - Bump
browser-switchto2.0.0-beta2 - Breaking Changes
- Make
AmericanExpressRewardsBalance#fromJson()package-private - Make
TYPEandAPI_RESOURCE_KEYinCardNoncepackage-private - Make
CardNonce#fromJson()methods package-private - Make
CardNonceconstructor package-private - Make
TYPE,API_RESOURCE_KEY,PAYMENT_METHOD_DATA_KEY,TOKENIZATION_DATA_KEYandTOKEN_KEYinPayPalAccountNoncepackage-private - Make
PayPalAccountNonce#fromJson()methods package-private - Make
PayPalAccountNonceconstructor package-private - Make
DATA_KEYandTOKEN_KEYinPaymentMethodNoncepackage-private - Make
PaymentMethodNonce#fromJson()package-private - Make
PaymentMethodNonce#parsePayentMethodNonces()methods package-private - Make
PaymentMethodNoncesconstructor package-private - Make
ThreeDSecureAuthenticationResponse#fromJson()package-private - Make
ThreeDSecureAuthenticationResponseconstructor package-private - Make
ThreeDSecureInfo#fromJson()package-private - Make
ThreeDSecureInfo#setThreeDSecureAuthenticationResponse()package-private - Make
ThreeDSecureLookup#fromJson()package-private - Make
TYPEandAPI_RESOURCE_KEYinVenmoAccountNoncepackage-private - Make
VenmoAccountNonce#fromJson()methods package-private - Make
VenmoAccountNonceconstructor package-private - Make
VenmoAccountNonceparcelable constructor private - Make
TYPEandAPI_RESOURCE_KEYinVisaCheckoutNoncepackage-private - Make
VisaCheckoutNonce#fromJson()methods package-private - Make
VisaCheckoutNonceconstructor package-private - Make
API_RESOURCE_KEYinGooglePayCardNoncepackage-private - Make
GooglePayCardNonce#fromJson()methods package-private - Make
GooglePayCardNonce#postalAddressFromJson()package-private - Make
GooglePayCardNonceconstructor package-private - Make
API_RESOURCE_KEYinLocalPaymentNoncepackage-private - Make
LocalPaymentNonce#fromJson()methods package-private - Make
LocalPaymentNonceconstructor package-private - Make
GooglePayClient#tokenize()package-private - The
shippingMethodproperty onThreeDSecureRequestis now an enum rather than a string. Possible values:SAME_DAYEXPEDITEDPRIORITYGROUNDELECTRONIC_DELIVERYSHIP_TO_STORE
- Change default
versionRequestedonThreeDSecureRequesttoThreeDSecureVersion.VERSION_2 - Rename
uiCustomizationonThreeDSecureRequesttov2UiCustomizationand change parameter toThreeDSecureV2UiCustomization - Update setters on
V1UiCustomizationto remove method chaining - Change Cardinal dependency from
apitoimplementation - Replace
VenmoClient#authorizeAccount()withVenmoClient#tokenizeVenmoAccount() - Rename
VenmoAuthorizeAccountCallbacktoVenmoTokenizeAccountCallback - Remove
activityparameter fromGooglePayClient#onActivityResult() - Remove
activityparameter fromGooglePayClient#getTokenizationParameters() - Update
PayPalClient#requestOneTimePayment()to expect aPayPalCheckoutRequestand deprecate method - Update
PayPalClient#requestBillingAgreement()to expect aPayPalVaultRequestand deprecate method - Make
PayPalRequestabstract - Update
PayPalRequestsetter method names and remove method chaining - Make
PayPalAccountBuilderpackage-private - Remove
ThreeDSecureClient#performVerification()convenience overload - Remove
ThreeDSecureAuthenticationResponse - Remove
errorMessageandthreeDSecureAuthenticationResponseproperties fromThreeDSecureInfo - Remove
cardNonceproperty fromThreeDSecureLookup - Remove
ThreeDSecureLookupCallback - Remove
firstNameandlastNameproperties fromThreeDSecurePostalAddress - Update
ThreeDSecureResultCallbackto expect aThreeDSecureResultparameter - Update
ThreeDSecureClient#continuePerformVerification()to expect aThreeDSecureResultparameter - Update callback type in
ThreeDSecureClient#initializeChallengeWithLookupResponsemethods - Replace
CardBuilderwithCard - Replace
BaseCardBuilderwithBaseCard - Replace
PaymentMethodBuilderwithPaymentMethod - Replace
UnionPayCardBuilderwithUnionPayCard - Replace
PayPalAccountBuilderwithPayPalAccount - Replace
VenmoAccountBuilderwithVenmoAccount - Replace
VisaCheckoutBuilderwithVisaCheckoutAccount - Remove builder pattern from the following classes:
PostalAddressGooglePayRequestReadyForGooglePayRequestLocalPaymentRequestThreeDSecureAdditionalInformationThreeDSecurePostalAddressThreeDSecureRequest
- Rename
PayPalPaymentIntentenums:INTENT_ORDERtoORDERINTENT_SALEtoSALEINTENT_AUTHORIZEtoAUTHORIZE
- Remove
paymentRequestedparam fromGooglePayRequestPaymentCallback - Refactor
BraintreeClientconstructor to take aStringinstead ofAuthorizationand change parameter ordering - Make
Authorizationpackage-private - Make
TokenizationKeypackage-private - Make
ClientTokenpackage-private - Make
PayPalUATpackage-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
BraintreeGraphQLHttpClientandBraintreeHttpClient
- Add
requestBillingAgreementtoPayPalRequest
- Bump Cardinal version to
2.2.5-4
- Upgrade
targetSdkVersionandcompileSdkVersionto API 31 - Bump
browser-switchversion 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
querieselement inAndroidManifest.xml
- Add Venmo to
querieselement inAndroidManifest.xml(fixes issue in Android 11 not properly detecting if Venmo app is installed)
- Add a
clientfor each feature:AmericanExpressClientBraintreeClientCardClientDataCollectorGooglePayClientLocalPaymentClientPayPalClientPaymentMethodClientPreferredPaymentMethodsClientThreeDSecureClientUnionPayClientVenmoClientVisaCheckoutClient
- Create callback interfaces to enforce callback pattern:
AmericanExpressGetRewardsBalanceCallbackCardTokenizeCallbackConfigurationCallbackDataCollectorCallbackDeletePaymentMethodNonceCallbackGetPaymentMethodNoncesCallbackLocalPaymentBrowserSwitchResultCallbackLocalPaymentStartCallbackPayPalBrowserSwitchResultCallbackPayPalFlowStartedCallbackPreferredPaymentMethodsCallbackThreeDSecureLookupCallbackThreeDSecurePrepareLookupCallbackThreeDSecureResultCallbackUnionPayEnrollCallbackUnionPayFetchCapabilitiesCallbackUnionPayTokenizeCallbackVenmoAuthorizeAccountCallbackVenmoOnActivityResultCallback
- Migrate
braintree-android-google-paymentintobraintree_android - Migrate
braintree-android-visa-checkoutintobraintree_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
LocalPaymentTransactionto represent Local Payment transactions - Add
amountsetter toPayPalRequest - Breaking Changes
- Bump
browser-switchto2.0.0-beta1 - Change
GooglePayCapabilities#isGooglePayEnabled()parameters - Create
american-expressmodule - Create
cardmodule - Create
local-paymentmodule - Create
pay-palmodule - Create
union-paymodule - Create
venmomodule - Remove PayPal
data-collectormodule - Remove PayPal
paypal-one-touchmodule - Remove
AmericanExpressListener - Remove
AnalyticsIntentService - Remove
AnalyticsSender - Remove
AmericanExpressRewardsBalancedefault constructor - Remove
amountparameter fromPayPalRequestconstructor - Remove
approvalUrlandpaymentIdproperties fromLocalPaymentRequest - Remove
Betainterface - Remove
BraintreeApiError - Remove
BraintreeApiErrorResponse - Remove
BraintreeApiHttpClient - Remove
BraintreeBrowserSwitchActivity - Remove
BraintreeCancelListener - Remove
BraintreeErrorListener - Remove
BraintreeFragment - Remove
BraintreeListener - Remove
BraintreePaymentResult - Remove
BraintreePaymentResultListener - Remove
BrowserSwitchExceptionconstructor - Remove
ConfigurationListener - Remove
ConfigurationManager - Remove
Configuration#getCardConfiguration() - Remove
Configuration#getGraphQL() - Remove
Configuration#getGooglePayment() - Remove
Configuration#getKount() - Remove deprecated 3DS
performVerificationmethods - 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
AmericanExpresstoAmericanExpressClient - Rename
CardtoCardClient - Rename
GooglePaymenttoGooglePayClient - Rename
LocalPaymenttoLocalPaymentClient - Rename
PayPaltoPayPalClient - Rename
PaymentMethodtoPaymentMethodClient - Rename
PreferredPaymentMethodstoPreferredPaymentMethodsClient - Rename
ThreeDSecuretoThreeDSecureClient - Rename
UnionPaytoUnionPayClient - Rename
VenmotoVenmoClient - Rename
VisaCheckouttoVisaCheckoutClient - Rename
coremodule toshared-utils - Rename
LocalPaymentResulttoLocalPaymentNonce - Rename
braintreemodule tobraintree-core - Rename
GooglePaymentclasses toGooglePay - Rename
BraintreeRequestCodes.GOOGLE_PAYMENTtoBraintreeRequestCodes.GOOGLE_PAY - Make
AnalyticsConfigurationpackage-private - Make
AnalyticsDatabasepackage-private - Make
AnalyticsEventpackage-private - Make
AppHelperpackage-private - Make
AppSwitchNotAvailableExceptionconstructor package-private - Make
AuthenticationExceptionconstructor package-private - Make
AuthorizationExceptionpackage-private - Make
BraintreeApiConfigurationpackage-private - Make
BraintreeErrorconstructors package-private - Make
BraintreeExceptionpackage-private - Make
BraintreeGraphQLHttpClientpackage-private - Make
BraintreeHttpClientpackage-private - Make
BraintreeSharedPreferencespackage-private - Make
BraintreeResponseListenerpackage-private - Make
CardConfigurationpackage-private - Make
ClassHelperpackage-private - Make
ConfigurationExceptionconstructor package-private - Make
DeviceInspectorpackage-private - Make
DownForMaintenanceExceptionconstructor package-private - Make
ErrorWithResponseconstructors package-private - Make
GraphQLConfigurationpackage-private - Make
GraphQLConstantspackage-private - Make
GraphQLQueryHelperpackage-private - Make
GooglePaymentConfigurationpackage-private - Make
HttpClientpackage-private - Make
HttpResponseCallbackpackage-private - Make
IntegrationTypepackage-private - Make
InvalidArgumentExceptionpackage-private - Make
Jsonpackage-private - Make
KountConfigurationpackage-private - Make
ManifestValidatorpackage-private - Make
MetadataBuilderpackage-private - Make
PaymentMethodDeleteExceptionconstructor package-private - Make
PayPalConfigurationpackage-private - Make
PayPalDataCollectorpackage-private - Make
PayPalDataCollectorRequestpackage-private - Make
PayPalPaymentResourcepackage-private - Make
PostalAddressParserpackage-private - Make
PreferredPaymentMethodsResultconstructor package-private - Make
RateLimitExceptionconstructor package-private - Make
SamsungPayConfigurationpackage-private - Make
ServerExceptionconstructor package-private - Make
SignatureVerificationpackage-private - Make
StreamHelperpackage-private - Make
ThreeDSecureV1BrowserSwitchHelperpackage-private - Make
TLSSocketFactorypackage-private - Make
UnexpectedExceptionconstructor package-private - Make
UnionPayConfigurationpackage-private - Make
UnprocessableEntityExceptionconstructor package-private - Make
UpgradeRequiredExceptionconstructor package-private - Make
UUIDHelperpackage-private - Make
VenmoConfigurationpackage-private - Make
VisaCheckoutConfigurationpackage-private - Move all classes to
com.braintreepayments.apipackage
- Bump
- Add
bic(Bank Identification Code) toLocalPaymentRequest
- Bump Cardinal version to
2.2.5-1
- Add
accountTypetoThreeDSecureRequest - Add
offerPayLatertoPayPalRequest
- Add
paymentTypeCountryCodetoLocalPaymentRequest - Upgrade PayPal Data Collector to 5.1.1 (fixes #325)
- Bump Cardinal version to
2.2.4-1(fixes #305) - Bump
browser-switchto1.1.3
- Update
compileSdkVersionandtargetSdkVersionto 30
- Expose cardholder name on
CardNonce. - Expose expiration month and year on
CardNonce. - Update
browser-switchmodule to1.1.0. - Fix bug where
onErrorcallback was invoked instead of theonCancelcallback in the Local Payment Method flow (fixes #299, thanks @vijayantil1) - Fix bug where
getReturnUrlSchemeis called and an Activity is no longer attached to the fragment (fixes #308, thanks @hakanbagci)
- Update
browser-switchmodule to1.0.0 - Make PayPalUAT::Environment enum public
- Add Card#tokenize overload to allow a custom
PaymentMethodNonceCallbackto be provided.
- Changed
Configuration#isPayPalEnabledto no longer consider deprecated integration requirements.
- Add default
uiCustomizationtoThreeDSecureRequestto 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
threeDSecureAuthenticationIdfield toThreeDSecureInfo - Update
braintree-android-google-paymentmodule 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
synchronizedwhen adding to callback queue inBraintreeFragment(thanks @skauss) - Update paypal-data-collector to 4.1.2
- Update
braintree-android-google-paymentmodule to3.1.0 - Fix a bug so that
BraintreeFragment.newInstancereturns a new fragment whenever a new authorization string is passed in (Resolves issue #274. Thanks @krunk4ever and @bramley-stride.)
- Update 3DS
prepareLookupmethod to function asynchronously to wait for Cardinal SDK - Add ability to request
AuthenticationInsightwhen tokenizing a credit card, which can be used to make a decision about whether to perform 3D Secure verification - Set error message on
ThreeDSecureInfowhen 3D Secure 2.0 challenge fails - Include reference to Cardinal's docs for
uiCustomizationproperty onThreeDSecureRequest. - Add
requiresUserAuthenticationmethod 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,threeDSecureServerTransactionIdandparesStatusfields 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#deletePaymentMethodwhich 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, andcountryCodeNumericin favor ofcountryCodeinCardBuilderandUnionPayCardBuilder.
- Support
lastFourinGooglePayCardNonce - 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
PRNGFixescheck forPRNGSecureRandomProviderto prevent race condition with other providers (#151) - Stop sending
Content-Typeheader 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
ThreeDSecureWebViewto 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-collectordependency in Braintree - Create
BraintreeRequestCodesfor 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
GoogleApiClientExceptionto 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#authorizeAccountwill now correctly vault the payment method when the vault option is true- Fix missing client metadata ids in
PayPalAccountNonces - 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
minSdkVersionto 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
NullPointerExceptioninBraintreeFragment#newInstance(fixes #125) - Document supported locales for PayPal
- Fix rare
NullPointerException(#128)
- Fix ProGuard rules (fixes #124)
- Fix
NullPointerExceptionwhen using deprecated DataCollector methods - Update compile and target SDK versions to 25
- Add
BraintreeFragment#getListenersto get a list of all the registered listeners - Upgrade paypal-data-collector to 3.1.3
- Upgrade Kount DataCollector to 3.1
- Add
AndroidPay#requestAndroidPayandAndroidPay#changePaymentMethodmethods 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#commitNowandFragmentManager#executePendingTransactionsinBraintreeFragment#newInstanceto synchronously set upBraintreeFragmentand avoid race conditions caused by asynchronousFragmentsetup.
- Update
AndroidPayCardNoncedescription 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
BraintreeFragmentfor getting cached payment methods - Update
paypal-data-collectorto 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
IllegalStateExceptionwhenBraintreeFragmentis not attached to anActivity - Restore url when
BraintreeFragmentis 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#onCancelbeing invoked twice for PayPal cancellations (fixes #112)
- Change
UnionPayCallbackto includesmsCodeRequired - Change
UnionPayCapabilities#isUnionPayEnrollmentRequiredtoUnionPayCapabilities#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
NullPointerExceptioninAnalyticsIntentService
- Prevent invalid schemes from being used for browser switching (Packages containing underscores would generate invalid schemes)
- Fix
NoClassDefFoundErrorinDataCollector - Fix
NullPointerExceptioninBraintreeFragment
- Add PayPal Checkout intent option (authorize or sale). See
PayPalRequest#intent - Update UnionPay support in demo app custom integration
- Update
android-card-formto 2.3.1 - Fix
NullPointerExceptioninAddPaymentMethodViewController(fixes #100) - Fix
IllegalStateExceptionwhen creating aBraintreeFragment(fixes #104) - Fix
NullPointerExceptionwhenBraintreeFragmentis not attached to anActivity(fixes #105)
- Fix
NullPointerExceptionwhen handling a PayPal response (fixes #101)
- Fix
NullPointerExceptions inBraintreeFragmentwhen not attached to anActivity - Fix Chrome Custom Tabs Intent flags interfering with browser switch
- Add new
DataCollector#collectDeviceDatamethods 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
RateLimitExceptionwhen 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
BraintreeFragmenthas not been attached to anActivity
- Features
- Add
PaymentRequest#defaultFirstoption - Add support for Chrome Custom tabs when browser switching
- Add
- Fixes
- Fix incorrect
groupIdof dependencies in pom file for 2.2.2
- Fix incorrect
🚨 The groupIds in this version's pom files are incorrect and dependencies will not resolve. Do not use. 🚨
- Update
PaymentButtonstyling when PayPal is the only visible option - Features
- Add client side overrides for payment methods in Drop-in and
PaymentButtontoPaymentRequest - 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
AndroidPayCardNoncefrom 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#collectDeviceDataand 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
PayPalOneTouchActivityand 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_TESTfor Android Pay requests in sandbox - Add
AndroidPay#isReadyToPaymethod
- 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#newInstancenow accepts a container id to addPaymentButtonto that container- Android Pay assets
- Fixes
- Add
onInflatemethod 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
PaymentRequestcrash when Google Play Services is not present
- Increase
minSdkVersionto 15 (see Platform Versions for the current distribution of Android versions) - Remove Gson dependency
- Replace
Braintreeclass with headlessBraintreeFragment- Move methods for creating payment methods from central
Braintreeclass 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
PaymentButtonclass from a view to a fragment - Create
PaymentRequestclass 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
compileSdkVersionandtargetSdkVersionto 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
NoClassDefFoundErrorcrash 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
NoClassDefFoundErrorin Drop-in caused by optional dependency
- Fixes
- Fix
NoClassDefFoundErrorin Drop-in andPaymentButtoncaused 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#onActivityResultmethod - Add support for additional PayPal scopes
- A
Listof additional scopes may be passed toBraintree#startPayWithPayPal PayPalAccount#getBillingAddresscan 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
CardFormto separate repo - Deprecate
Braintree#getInstancein favor ofBraintree#setup - Fixes
- Remove metadata from assets, fixes #16
- Update gradle plugin to 1.1.2
- Update build tools to 22
- Update
compileSdkVersionandtargetSdkVersionto 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
PROFILEscope
- 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_STATEpermission - 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
targetSdkVersionto 21 - Increase
buildToolsVersionto 21.0.2 - Fixes
- Fix max length on
EditTexts - 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
correlationIdis 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
PayPalButtonis deprecated in favor ofPaymentButton
- Breaking Change
- BraintreeData returns
deviceDatainstead ofdeviceSessionIdoncollectDeviceData
- BraintreeData returns
- Improvements
- References
sdk-manager-pluginfrom 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
correlationIdto PayPal account creation
- Fixes
- Improved packaging for non-Gradle uses of SDK
- Fixes
- Attach Javadocs and sources to Maven Central build.
- Breaking Changes
- Bump
minSdkVersionto 21.
- Bump
- Fix
allowedCardNetworksinisReadyToPayRequestto be uppercased. Thanks @fcastagnozzi.
- Add support for Google Pay's
existingPaymentMethodRequiredoption
- Add support for
isNetworkTokenized
Fix setting the correct version in metadata
- Add check in
requestPaymentto 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