Braintree Payments changelog
All notable changes to Braintree Payments (kv_braintree) are documented here.
The format follows Keep a Changelog and the project uses Semantic Versioning.
[Unreleased]
Section titled “[Unreleased]”[1.0.0] - 2026-11-08
Section titled “[1.0.0] - 2026-11-08”- Initial release for CS-Cart, CS-Cart Ultimate, Multi-Vendor and Multi-Vendor Ultimate 4.17.2 to 4.21.x (PHP 7.4 to 8.3).
- Braintree GraphQL API (no SDK bundled) and the Braintree JavaScript SDK 3.147.0: Hosted Fields for cards, 3D Secure 2, PayPal Checkout, Data Collector, on a pay page of the store after the order is placed.
- Charge at once or authorize; capture at an order status or by hand (a lower amount leaves the rest uncollected); void at the void status or Declined; full and partial refunds; refund at an order status.
- The nonce is read from Braintree before the charge: its real type decides card or PayPal (a card posted as PayPal is refused), the cards / PayPal switches and the 3D Secure liability rule apply to that type.
- Charges without a clear answer are never closed as failed: kept pending (cart and saved cart emptied), looked up by their unique orderId and booked by the cron when they land, for 24 hours; a second try with the same apiRequestKey only after a finished retryable answer.
- Captures, voids and refunds stored with their own apiRequestKey before the call; an unclear answer, and an error answer to a resend, stay “unconfirmed” until a read-back decides.
- An order is booked as paid only when amount, currency, merchant account, orderId and the current order total match; otherwise the payment is voided or refunded and flagged. Second payments and payments of cancelled orders are given back too.
- Merchant accounts per currency (read by Test connection); other currencies charged in the default merchant account at the store rate; exact ISO 4217 amounts.
- Signed webhooks (bt_signature / bt_payload, the official SDK’s algorithm), applied once; disputes recorded with an optional order status.
- Multi-Vendor: owner mode with one payment per cart, refunds per vendor order share and one capture for every vendor order that is not cancelled; owner mode off with each vendor’s own Braintree account (direct payments).
- Connection page with sandbox and production keys (private key encrypted), job queue, cron, log with CSV export, payments list, order tab.
- Payment records are kept on uninstall unless “Delete payment records on uninstall” is ticked; Upgrade Synchronizer for in-place updates.
Tested on
Section titled “Tested on”- CS-Cart 4.17.2 (Ultimate) and Multi-Vendor 4.17.2 on PHP 8.1 (HTTP e2e 75/75 each, Multi-Vendor vendor e2e 43/43, licence gate 43/43 and lifecycle 12/12 on both), unit tests on PHP 8.1 and 8.3, templates compiled with the Smarty 5 engine of 4.21.2. Against a local stand-in built from the Braintree documentation, not the real Braintree sandbox.