# Changelog ## [4.18.0](https://github.com/recurly/recurly-client-ruby/tree/4.18.0) (2022-06-16) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.17.0...4.18.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#776](https://github.com/recurly/recurly-client-ruby/pull/776) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.17.0](https://github.com/recurly/recurly-client-ruby/tree/4.17.0) (2022-04-15) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.16.0...4.17.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#766](https://github.com/recurly/recurly-client-ruby/pull/766) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.16.0](https://github.com/recurly/recurly-client-ruby/tree/4.16.0) (2022-03-24) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.15.0...4.16.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 (Percentage tiers feature) [#762](https://github.com/recurly/recurly-client-ruby/pull/762) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.15.0](https://github.com/recurly/recurly-client-ruby/tree/4.15.0) (2022-03-14) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.14.0...4.15.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 (Percentage tiers feature) [#757](https://github.com/recurly/recurly-client-ruby/pull/757) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.14.0](https://github.com/recurly/recurly-client-ruby/tree/4.14.0) (2022-03-03) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.13.0...4.14.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#753](https://github.com/recurly/recurly-client-ruby/pull/753) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.13.0](https://github.com/recurly/recurly-client-ruby/tree/4.13.0) (2022-01-31) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.12.0...4.13.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#747](https://github.com/recurly/recurly-client-ruby/pull/747) ([recurly-integrations](https://github.com/recurly-integrations)) - Add region argument to client to connect in EU data center [#744](https://github.com/recurly/recurly-client-ruby/pull/744) ([FabricioCoutinho](https://github.com/FabricioCoutinho)) ## [4.12.0](https://github.com/recurly/recurly-client-ruby/tree/4.12.0) (2022-01-28) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.11.0...4.12.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 (Invoice Customization) [#746](https://github.com/recurly/recurly-client-ruby/pull/746) ([recurly-integrations](https://github.com/recurly-integrations)) - Generated Latest Changes for v2021-02-25 [#743](https://github.com/recurly/recurly-client-ruby/pull/743) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.11.0](https://github.com/recurly/recurly-client-ruby/tree/4.11.0) (2021-12-29) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.10.0...4.11.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 (Tax Inclusive Pricing) [#741](https://github.com/recurly/recurly-client-ruby/pull/741) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.10.0](https://github.com/recurly/recurly-client-ruby/tree/4.10.0) (2021-11-22) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.9.0...4.10.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#739](https://github.com/recurly/recurly-client-ruby/pull/739) ([recurly-integrations](https://github.com/recurly-integrations)) - Generated Latest Changes for v2021-02-25 [#736](https://github.com/recurly/recurly-client-ruby/pull/736) ([recurly-integrations](https://github.com/recurly-integrations)) - Allow API base url configuration [#735](https://github.com/recurly/recurly-client-ruby/pull/735) ([cbarton](https://github.com/cbarton)) - Generated Latest Changes for v2021-02-25 [#734](https://github.com/recurly/recurly-client-ruby/pull/734) ([recurly-integrations](https://github.com/recurly-integrations)) - Generated Latest Changes for v2021-02-25 [#728](https://github.com/recurly/recurly-client-ruby/pull/728) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.9.0](https://github.com/recurly/recurly-client-ruby/tree/4.9.0) (2021-09-16) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.8.0...4.9.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 (Support to new subscription fields and response) [#725](https://github.com/recurly/recurly-client-ruby/pull/725) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.8.0](https://github.com/recurly/recurly-client-ruby/tree/4.8.0) (2021-09-01) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.7.0...4.8.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 (Dunning Campaigns feature) [#724](https://github.com/recurly/recurly-client-ruby/pull/724) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.7.0](https://github.com/recurly/recurly-client-ruby/tree/4.7.0) (2021-08-19) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.6.0...4.7.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 (get_preview_renewal) [#722](https://github.com/recurly/recurly-client-ruby/pull/722) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.6.0](https://github.com/recurly/recurly-client-ruby/tree/4.6.0) (2021-08-11) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.5.0...4.6.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#720](https://github.com/recurly/recurly-client-ruby/pull/720) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.5.0](https://github.com/recurly/recurly-client-ruby/tree/4.5.0) (2021-08-02) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.4.0...4.5.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#714](https://github.com/recurly/recurly-client-ruby/pull/714) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.4.0](https://github.com/recurly/recurly-client-ruby/tree/4.4.0) (2021-06-15) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.3.0...4.4.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#705](https://github.com/recurly/recurly-client-ruby/pull/705) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.3.0](https://github.com/recurly/recurly-client-ruby/tree/4.3.0) (2021-06-04) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.2.0...4.3.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#702](https://github.com/recurly/recurly-client-ruby/pull/702) ([recurly-integrations](https://github.com/recurly-integrations)) - Making #post allow a nil body [#699](https://github.com/recurly/recurly-client-ruby/pull/699) ([douglasmiller](https://github.com/douglasmiller)) ## [4.2.0](https://github.com/recurly/recurly-client-ruby/tree/4.2.0) (2021-04-21) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.1.0...4.2.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 [#695](https://github.com/recurly/recurly-client-ruby/pull/695) ([recurly-integrations](https://github.com/recurly-integrations)) ## [4.1.0](https://github.com/recurly/recurly-client-ruby/tree/4.1.0) (2021-04-14) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.0.1...4.1.0) **Merged Pull Requests** - Generated Latest Changes for v2021-02-25 (Backup Payment Method) [#691](https://github.com/recurly/recurly-client-ruby/pull/691) ([recurly-integrations](https://github.com/recurly-integrations)) - Generated Latest Changes for v2021-02-25 [#687](https://github.com/recurly/recurly-client-ruby/pull/687) ([recurly-integrations](https://github.com/recurly-integrations)) - Restoring NetworkError and it's derivatives [#685](https://github.com/recurly/recurly-client-ruby/pull/685) ([douglasmiller](https://github.com/douglasmiller)) - Generated Latest Changes for v2021-02-25 (Usage Percentage on Tiers) [#683](https://github.com/recurly/recurly-client-ruby/pull/683) ([recurly-integrations](https://github.com/recurly-integrations)) - Fixes TypeError caused by attempts to Base64 encode nil @api_key values [#672](https://github.com/recurly/recurly-client-ruby/pull/672) ([alexfulsome](https://github.com/alexfulsome)) ## [4.0.1](https://github.com/recurly/recurly-client-ruby/tree/4.0.1) (2021-03-19) [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.0.0...4.0.1) **Merged Pull Requests** - Release 4.0.1 [#682](https://github.com/recurly/recurly-client-ruby/pull/682) ([douglasmiller](https://github.com/douglasmiller)) - More ruby 3.0 [#680](https://github.com/recurly/recurly-client-ruby/pull/680) ([douglasmiller](https://github.com/douglasmiller)) - Generated Latest Changes for v2021-02-25 [#678](https://github.com/recurly/recurly-client-ruby/pull/678) ([recurly-integrations](https://github.com/recurly-integrations)) - Sync updates not ported from 3.x client [#671](https://github.com/recurly/recurly-client-ruby/pull/671) ([douglasmiller](https://github.com/douglasmiller)) ## [4.0.0](https://github.com/recurly/recurly-client-ruby/tree/4.0.0) (2021-03-01) # Major Version Release The 4.x major version of the client pairs with the `v2021-02-25` API version. This version of the client and the API contain breaking changes that should be considered before upgrading your integration. ## Breaking Changes in the API All changes to the core API are documented in the [Developer Portal changelog](https://developers.recurly.com/api/changelog.html#v2021-02-25---current-ga-version) ## Breaking Changes in Client - Remove `site_id` and `subdomain` from client initializer. [#624] - Remove `set_site_id` method from client. [#627] - Classify unexpected error responses from Recurly API via an HTTP status code mapping provided in `Recurly::Errors::ERROR_MAP`. [#616] - Remove `NetworkError` class. All error classes now extend the `APIError`. This means that the order of multiple rescue blocks will need to be re-considered. [#616] ### 3.x ```ruby rescue Recurly::Errors::ValidationError => ex # catch a validation error rescue Recurly::Errors::APIError => ex # catch a generic api error rescue Recurly::Errors::TimeoutError => ex # catch a specific network error ``` ### 4.x ```ruby rescue Recurly::Errors::ValidationError => ex # catch a validation error rescue Recurly::Errors::TimeoutError => ex # catch a specific network error rescue Recurly::Errors::APIError => ex # catch a generic api error ``` - Rename `InvalidResponseError` to `InvalidContentTypeError`. [#616] - Rename `UnavailableError` to `ServiceUnavailableError`. [#616] - Reorganize top-level keys of the optional parameters hash to improve clarity and create space for additional options. [#619] ### 3.x ```ruby options = { limit: 200, headers: { 'Accept-Language' => 'fr' } } accounts = @client.list_accounts(options) ``` ### 4.x ```ruby options = { params: { limit: 200 } headers: { 'Accept-Language' => 'fr' } } accounts = @client.list_accounts(options) ```