Version 3.2.1
October 23, 2026
Changed
- New plugin icon: a white glyph on a black circle, with a white icon mask for the control panel nav.
Version 3.2.0
October 20, 2026
Added
- Payment sources: a customer can save a card or PayPal account with Commerce's
commerce/payment-sources/addaction, subscribe with it and pay orders with it (paymentSourceId). Each is vaulted on the customer's Braintree customer (created if missing) and described as "Visa ending in ••••1111" or "PayPal (email)"; deleting one in Commerce deletes it in Braintree (#53). - A
paymentSourceoption forgetPaymentFormHtml(): the drop-in offers a card or PayPal in its vault flow, with no Apple Pay or Google Pay.subscription: truenow does the same, PayPal included. - A "Verify cards when saved?" gateway setting (off by default): Braintree verifies a card before it is saved as a payment source, against the primary currency's merchant account and with the customer's primary billing address, so a declined card is refused when it is saved.
- README sections on saving a payment source, verifying cards, paying with a saved source and subscribing.
Changed
- Subscriptions are charged to the customer's primary payment source when it is on the Braintree gateway, otherwise to the one saved most recently.
commerce-braintree/payment-methods/deleteandcommerce-braintree/subscriptions/update-paymentnow accept POST requests from a signed-in user only.
Fixed
- Fixed a security issue where any signed-in user could delete another customer's vaulted payment method, or change another customer's subscription, through the plugin's two controller actions.
- Fixed subscriptions never starting on Craft 4 and 5 (a TypeError in
subscribe()). - Fixed saving a payment source throwing on Commerce 4 and 5 (
PaymentSourcehas nouserId). - Fixed a refused subscription hiding Braintree's reason.
- Fixed the drop-in posting an empty nonce when a saved payment method was already selected on load (vaulted forms).
- Braintree's reason for refusing a payment source is now on the payment form's errors (
paymentFormErrors), as well as in the log. - Saving a card that is already saved now keeps its existing payment source, and its primary flag, instead of replacing it.
Version 3.1.2
October 20, 2026
Added
- A
dropinOptionsoption forgetPaymentFormHtml(): any of Braintree's drop-in options, merged over the plugin's own (#60).
Fixed
- Fixed the gateway settings page erroring on Craft 4 multi-site installs (
Site::getUiLabel()is Craft 5 only) (#58). - Fixed subscription renewal webhooks failing with a TypeError on Commerce 5 (
craft\commerce\models\Currencyno longer exists). - Fixed saving and finding payment sources on Commerce 5 (
getAllGatewayPaymentSourcesByUserId()is nowgetAllGatewayPaymentSourcesByCustomerId()). - Fixed
NotFounderrors from the Braintree SDK not being caught when cancelling or refreshing a subscription. - Fixed the next payment amount using a currency property that no longer exists.
- Fixed a PHP warning when a site has no merchant account override.
- Removed a settings model and service that did not exist, which made
getSettings()fatal.
Version 3.1.1
July 15, 2025
Fixed
- missing gateway setting variable
Version 3.1.0
May 5, 2025
Added
- multisite override support for merchant account ids
- device data collection for dropin-ui
Updated
- DropInUiSDK version 1.44.1
- ClientSDK version 3.111.0
Version 3.0.3
May 16, 2024
Added
- Craft 5 compatibility
Updated
- DropInUiSDK version 1.42.0
- ClientSDK version 3.102.0
Version 3.0.2
March 13, 2024
Fixed
- Braintree\Customer type
Version 3.0.1
February 6, 2024
Changed
- manual state control option for buttons
- Released - finally!
Version 3.0.0-beta.11
May 18, 2023
Changed
- changed callback param to object with callbacks for "onPaymentMethodSelect" and "onPaymentMethodReady"
Version 3.0.0-beta.10
March 31, 2023
Changed
- express checkout params
Added
- DropinUi Callback param.
Version 3.0.0-beta.9
March 24, 2023
Changed
- quick checkout => express checkout
Added
- params for express checkout buttons
- express checkout buttons wrapping div with class "express-checkout-buttons" for layout purposes.
Version 3.0.0-beta.8
March 21, 2023
Changed
- removed testing values
Version 3.0.0-beta.7
March 21, 2023
Changed
- updated dropinUI sdk to 1.34.0
- updated client sdk to 3.91.0
Added
- NEW quick checkout ability for applePay and googlePay
Version 3.0.0-beta.6
March 8, 2023
Changed
- order.user => order.customer
Added
- Ability to specify SDK versions
Version 3.0.0-beta.5
March 8, 2023
Fixed
- js form submission
Version 3.0.0-beta.4
March 3, 2023
Fixed
- data type issues
- multiple form issues
- fixed no jquery changes
Changed
- Updated submit button dataset to allow html not just text
Version 3.0.0-beta.3
January 30, 2023
Changed
- Updated data type
Version 3.0.0-beta.2
January 19, 2023
Changed
- Removed jQuery dependency for DropInUI
Version 3.0.0-beta.1
October 12, 2022
Added
- Craft / Commerce 4 support.
Version 2.4.3
June 10, 2022
Changed
- Change of ownership
Version 2.4.2
December 16, 2021
Fixed
- Fixed an issue with the currency being passed to the currency formatter.
Added
- Added support for subscription trial days - thanks @digason
Version 2.4.1
September 24, 2021
Fixed
- Fixed an issue where the Drop-in UI wasn't using the correct Google Pay object - thanks @jmauzyk.
Added
- Added a new setting for including a Google Pay Mechant ID.
Version 2.4.0
July 20, 2021
Added
- support for authorize and capture functions thanks @jmauzyk
Version 2.3.9
October 28, 2020
Added
- logging
- address field truncating to 50 characters due to braintree api restrictions
Version 2.3.8
September 16, 2020
Fixed
- Fixed a bug where purchases weren't using the createSale method
Version 2.3.7
September 16, 2020
Added
- Created a refreshPaymentHistory method so the full subscription payment history can be view in the CP using the "Refresh payment history" button.
Fixed
- Fixed a bug where a subscription payment used the original subscription date instead of the latest transaction date.
Changed
- Moved
gateway->transction()->saleto it's own createSale method.
Version 2.3.6
June 23, 2020
Fixed
- Allow setting of merchantAccountId for single currency setup (#29)
- MerchantAccountId wrapped in Craft::parseEnv (#30)
- Throwing braintree exceptions using PaymentExceptions (#31)
Version 2.3.5
March 26, 2020
Fixed
- Fixed project config bug
Version 2.3.4
March 12, 2020
Changed
- Updated gateway property visability
Version 2.3.3
January 9, 2020
Changed
- Update requirements to allow for Craft Commerce 3
Version 2.3.2
January 9, 2020
Fixed
- switch subscription payment source removes old payment source if not in use by another subscription.
Changed
- DropinUI don't allow save card option if its a subscription payment
Version 2.3.1
December 18, 2019
Fixed
- subscription detail page throwing error
Changed
- Cancelling a subscription now deletes the payment source if not being used by another active subscription.
Added
- deletePaymentMethod(\$token)
Version 2.3.0
December 13, 2019
Changed
- Update Braintree PHP SDK to 4.5.0
- Updated dropinUi js to 1.21.0
- dropinUi form submission to be \$form.trigger('submit')
- removed country name from billing and shipping addresses, now just uses the ISO2 code
Added
- DropinUi translations.
Version 2.2.7
November 19, 2019
Fixed
- A bug where subscriptions were not being created when the currency plan was different to the default currency in Braintree
Version 2.2.6
November 15, 2019
Fixed
- Fixed a bug that could occur if a susbcrption was cancelled directly in Braintree.
Version 2.2.5
October 26, 2019
Changed
- Craft Commerce 2.2 compatability update
Version 2.2.4
October 2, 2019
Fixed
- Fixed date bug in _handleSubscriptionCharged method
- Fixed deprecation warning for locale in DropinUi template
Changed
- Updated DropinUi button reset
Version 2.2.3
September 12, 2019
Changed
- Updated Braintree JS versions
Version 2.2.2
September 5, 2019
Fixed
- gateway settings twig mistake
Version 2.2.1
September 5, 2019
Fixed
- address formatting to cater for no country
Added
- autosuggestField support for environment settings
- customer info sent
- shortNumber used for orderId
Version 2.2.0
September 3, 2019
Added
- 3DS2 support
Changed
- DropinUi Javascript jQuery object is now passed into init function.
Version 2.1.18
August 29, 2019
Fixed
- Don't pass address if no address on order.
Version 2.1.17
August 19, 2019
Fixed
- Addresses now passing US state abbreviation for paypal requirement.
Version 2.1.16
August 15, 1019
Fixed
- Paypal when using getPaymentFormHtml() (issue #6)
Version 2.1.15
July 29, 2019
Fixed
- Fixed a bug in an address with the business name/company
Version 2.1.14
July 25, 2019
Added
- Billing and Shipping addresses now passed to Braintree
Fixed
Version 2.1.13
July 17, 2019
- Fixed a bug where subscription data was being returned as an object
Version 2.1.12
July 15, 2019
Changed
- Updated error message for better error logging
Version 2.1.11
July 3, 2019
Changed
- User friendly error message
Version 2.1.10
June 27, 2019
Added
- Added support for Craft Commerce 2.1.4 and
craft\commerce\base\SubscriptionResponseInterface::isInactive().
Version 2.1.9
June 18, 2019
Added
- Subscription updates
- Subscription webhooks support
Version 2.1.8
May 29, 2019
Fixed
- DropIn UI jQuery reference, thanks @davecosec
Version 2.1.7
May 21, 2019
Fixed
- multi-currency support
Version 2.1.6
March 12, 2019
Changed
- gateway.getPaymentFormHtml() returns raw by default
Fixed
- rendering issue when using getPaymentFormHtml()
Version 2.1.5
February 25, 2019