Server SDK Migration Guideanchor

availability

This page is only relevant for:

  • PHP migrating from version 5.5.0 and below,
  • Python migrating from version 3.59.0 and below,
  • Java migrating from version 2.109.0 and below,
  • .NET migrating from version 4.18.0 and below,
  • Node migrating from version 2.24.0 and below,
  • Ruby migrating from version 3.4.0 and below.

You can skip this guide if you are starting a new integration using the latest version of an SDK.

Overviewanchor

Braintree makes regular updates to our server SDKs which follow semantic versioning guidelines. This page will guide you through the largest breaking changes that are specific to the language you are integrating with Braintree.

Check the SDK's CHANGELOG or more information on changes.

SDK major version 4anchor

Ruby versionsanchor

Previous versions of the Ruby SDK supported older, now End-of-Life versions of Ruby. Starting with version 4.0.0, the Braintree Ruby SDK only supports Ruby versions 2.6+.

XML parsinganchor

Version 3 of the Ruby SDK required libxml-ruby. In version 4, libxml-ruby is an optional dependency that can be included for more performant XML parsing. If it is not explicitly included, REXML will be used for XML parsing. To include libxml-ruby, add the following to your Gemfile:

  1. Ruby
gem 'libxml-ruby'

SDK major version 3anchor

Ruby versionsanchor

Previous versions of the Ruby SDK supported older, now End-of-Life versions of Ruby. Starting with version 3.0.1, the Braintree Ruby SDK only supports Ruby versions 2.5+.

Google Payanchor

Previous versions of the Ruby SDK represented Google Pay cards as Android Pay cards to prevent breaking changes. In version 3.0.1, AndroidPayCard and AndroidPayCardDetails were renamed to GooglePayCard and GooglePayCardDetails. See the Google Pay Guide for more details.

Exceptionsanchor

Down For Maintenance exceptions have been renamed to Service Unavailable exceptions, since we do not bring our services down to perform maintenance operations anymore.

We also added additional timeout exceptions to give extra clarity on the source (client request vs gateway response).

For more information, check our guide on Exceptions.

Further readinganchor