diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b7c0979e..8126917ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,1233 +1,1234 @@ -# Changelog - -## 9.0.0 - 2023-08-16 -**⚠️ ACTION REQUIRED: the breaking change in this release likely affects you ⚠️** - -* [#1253](https://github.com/stripe/stripe-ruby/pull/1253) [#1260](https://github.com/stripe/stripe-ruby/pull/1260) Pin latest API version as the default - In this release, Stripe API Version `2023-08-16` (the latest at time of release) will be sent by default on all requests. This is a significant change with wide ramifications. The API version affects the properties you see on responses, the parameters you are allowed to send on requests, and so on. The previous default was to use your [Stripe account's default API version](https://stripe.com/docs/development/dashboard/request-logs#view-your-default-api-version). - - To successfully upgrade to stripe-ruby v9, you must either - - 1. **(Recommended) Upgrade your integration to be compatible with API Version `2023-08-16`.** - - Please read the API Changelog carefully for each API Version from `2023-08-16` back to your [Stripe account's default API version](https://stripe.com/docs/development/dashboard/request-logs#view-your-default-api-version). Determine if you are using any of the APIs that have changed in a breaking way, and adjust your integration accordingly. Carefully test your changes with Stripe [Test Mode](https://stripe.com/docs/keys#test-live-modes) before deploying them to production. - - You can read the [v9 migration guide](https://github.com/stripe/stripe-ruby/wiki/Migration-guide-for-v9) for more detailed instructions. - 2. **(Alternative option) Specify a version other than `2023-08-16` when initializing `stripe-ruby`.** - - If you were previously initializing stripe-ruby without an explicit API Version, you can postpone modifying your integration by specifying a version equal to your [Stripe account's default API version](https://stripe.com/docs/development/dashboard/request-logs#view-your-default-api-version). For example: - - ```diff - require 'stripe' - Stripe.api_key = "sk_test_..." - + Stripe.api_version = '2020-08-27' - ``` - - If you were already initializing stripe-ruby with an explicit API Version, upgrading to v9 will not affect your integration. - - Read the [v9 migration guide](https://github.com/stripe-ruby/wiki/Migration-guide-for-v9) for more details. - - Going forward, each major release of this library will be *pinned* by default to the latest Stripe API Version at the time of release. - - That is, instead of upgrading stripe-ruby and separately upgrading your Stripe API Version through the Stripe Dashboard. whenever you upgrade major versions of stripe-ruby, you should also upgrade your integration to be compatible with the latest Stripe API version. - -## 8.7.0 - 2023-08-10 -* [#1256](https://github.com/stripe/stripe-ruby/pull/1256) Update generated code +# Changelog + +## 9.0.0 - 2023-08-16 +**⚠️ ACTION REQUIRED: the breaking change in this release likely affects you ⚠️** + +* [#1253](https://github.com/stripe/stripe-ruby/pull/1253) [#1260](https://github.com/stripe/stripe-ruby/pull/1260) Pin latest API version as the default + + In this release, Stripe API Version `2023-08-16` (the latest at time of release) will be sent by default on all requests. This is a significant change with wide ramifications. The API version affects the properties you see on responses, the parameters you are allowed to send on requests, and so on. The previous default was to use your [Stripe account's default API version](https://stripe.com/docs/development/dashboard/request-logs#view-your-default-api-version). + + To successfully upgrade to stripe-ruby v9, you must either + + 1. **(Recommended) Upgrade your integration to be compatible with API Version `2023-08-16`.** + + Please read the API Changelog carefully for each API Version from `2023-08-16` back to your [Stripe account's default API version](https://stripe.com/docs/development/dashboard/request-logs#view-your-default-api-version). Determine if you are using any of the APIs that have changed in a breaking way, and adjust your integration accordingly. Carefully test your changes with Stripe [Test Mode](https://stripe.com/docs/keys#test-live-modes) before deploying them to production. + + You can read the [v9 migration guide](https://github.com/stripe/stripe-ruby/wiki/Migration-guide-for-v9) for more detailed instructions. + 2. **(Alternative option) Specify a version other than `2023-08-16` when initializing `stripe-ruby`.** + + If you were previously initializing stripe-ruby without an explicit API Version, you can postpone modifying your integration by specifying a version equal to your [Stripe account's default API version](https://stripe.com/docs/development/dashboard/request-logs#view-your-default-api-version). For example: + + ```diff + require 'stripe' + Stripe.api_key = "sk_test_..." + + Stripe.api_version = '2020-08-27' + ``` + + If you were already initializing stripe-ruby with an explicit API Version, upgrading to v9 will not affect your integration. + + Read the [v9 migration guide](https://github.com/stripe-ruby/wiki/Migration-guide-for-v9) for more details. + + Going forward, each major release of this library will be *pinned* by default to the latest Stripe API Version at the time of release. + + That is, instead of upgrading stripe-ruby and separately upgrading your Stripe API Version through the Stripe Dashboard. whenever you upgrade major versions of stripe-ruby, you should also upgrade your integration to be compatible with the latest Stripe API version. + +## 8.7.0 - 2023-08-10 +* [#1256](https://github.com/stripe/stripe-ruby/pull/1256) Update generated code Add resources `Tax::CalculationLineItem`, `Tax::TransactionLineItem`, and `Treasury::FinancialAccountFeatures`. These resources have no methods on them, but do represent the return type of methods elsewhere. - -## 8.6.0 - 2023-07-13 -* [#1244](https://github.com/stripe/stripe-ruby/pull/1244) Update generated code - * Add support for new resource `Tax.Settings` - * Add support for `retrieve` and `update` methods on resource `Settings` -* [#1241](https://github.com/stripe/stripe-ruby/pull/1241) Update generated code - -* [#1209](https://github.com/stripe/stripe-ruby/pull/1209) Update shoulda-context version -* [#1235](https://github.com/stripe/stripe-ruby/pull/1235) Allow "error" string as log level -* [#1238](https://github.com/stripe/stripe-ruby/pull/1238) Update log level error message to include `error` -* [#1231](https://github.com/stripe/stripe-ruby/pull/1231) fix: variable typo in README for instrumentation -* [#1234](https://github.com/stripe/stripe-ruby/pull/1234) Update generated code - -* [#1230](https://github.com/stripe/stripe-ruby/pull/1230) Update generated code - * Release specs are identical. -* [#1226](https://github.com/stripe/stripe-ruby/pull/1226) Update generated code - -* [#1223](https://github.com/stripe/stripe-ruby/pull/1223) Update generated code - -* [#1225](https://github.com/stripe/stripe-ruby/pull/1225) Downgrade jaro_winkler -* [#1219](https://github.com/stripe/stripe-ruby/pull/1219) Update generated code + +## 8.6.0 - 2023-07-13 +* [#1244](https://github.com/stripe/stripe-ruby/pull/1244) Update generated code + * Add support for new resource `Tax.Settings` + * Add support for `retrieve` and `update` methods on resource `Settings` +* [#1241](https://github.com/stripe/stripe-ruby/pull/1241) Update generated code + +* [#1209](https://github.com/stripe/stripe-ruby/pull/1209) Update shoulda-context version +* [#1235](https://github.com/stripe/stripe-ruby/pull/1235) Allow "error" string as log level +* [#1238](https://github.com/stripe/stripe-ruby/pull/1238) Update log level error message to include `error` +* [#1231](https://github.com/stripe/stripe-ruby/pull/1231) fix: variable typo in README for instrumentation +* [#1234](https://github.com/stripe/stripe-ruby/pull/1234) Update generated code + +* [#1230](https://github.com/stripe/stripe-ruby/pull/1230) Update generated code + * Release specs are identical. +* [#1226](https://github.com/stripe/stripe-ruby/pull/1226) Update generated code + +* [#1223](https://github.com/stripe/stripe-ruby/pull/1223) Update generated code + +* [#1225](https://github.com/stripe/stripe-ruby/pull/1225) Downgrade jaro_winkler +* [#1219](https://github.com/stripe/stripe-ruby/pull/1219) Update generated code - Documentation updates. -* [#1215](https://github.com/stripe/stripe-ruby/pull/1215) Update generated code - -* [#1208](https://github.com/stripe/stripe-ruby/pull/1208) Update generated code - -* [#1204](https://github.com/stripe/stripe-ruby/pull/1204) Update generated code - - -## 8.5.0 - 2023-03-30 -* [#1203](https://github.com/stripe/stripe-ruby/pull/1203) Update generated code + Documentation updates. +* [#1215](https://github.com/stripe/stripe-ruby/pull/1215) Update generated code + +* [#1208](https://github.com/stripe/stripe-ruby/pull/1208) Update generated code + +* [#1204](https://github.com/stripe/stripe-ruby/pull/1204) Update generated code + + +## 8.5.0 - 2023-03-30 +* [#1203](https://github.com/stripe/stripe-ruby/pull/1203) Update generated code * Remove support for `create` method on resource `Tax.Transaction` - * This is not a breaking change, as this method was deprecated before the Tax Transactions API was released in favor of the `create_from_calculation` method. -* [#1201](https://github.com/stripe/stripe-ruby/pull/1201) Update save deprecation message - -## 8.4.0 - 2023-03-23 -* [#1197](https://github.com/stripe/stripe-ruby/pull/1197) Update generated code (new) - * Add support for new resources `Tax.CalculationLineItem`, `Tax.Calculation`, `Tax.TransactionLineItem`, and `Tax.Transaction` - * Add support for `create` and `list_line_items` methods on resource `Calculation` - * Add support for `create_from_calculation`, `create_reversal`, `create`, `list_line_items`, and `retrieve` methods on resource `Transaction` -* [#1152](https://github.com/stripe/stripe-ruby/pull/1152) Symbolize hash keys inside `convert_to_stripe_object_with_params` - -## 8.3.0 - 2023-02-16 -* [#1175](https://github.com/stripe/stripe-ruby/pull/1175) API Updates - * Add support for `refund_payment` method on resource `Terminal.Reader` - -## 8.2.0 - 2023-02-02 -* [#1173](https://github.com/stripe/stripe-ruby/pull/1173) API Updates - * Add support for `resume` method on resource `Subscription` -* [#1171](https://github.com/stripe/stripe-ruby/pull/1171) Remove unused `partial` param from `initialize_from` - -## 8.1.0 - 2023-01-12 -* [#1162](https://github.com/stripe/stripe-ruby/pull/1162) Improve request events instrumentation - -## 8.0.0 - 2022-11-16 -* [#1144](https://github.com/stripe/stripe-ruby/pull/1144) Next major release changes - -Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-11-15. - -"⚠️" symbol highlights breaking changes. - -### Deprecated -- The `save` method is deprecated. Prefer the static `update` method that doesn't require retrieval of the resource to update it. - ``` ruby - # before - refund = Stripe::Refund.retrieve("re_123") - refund.description = "Refund description" - refund.save - - # after - Stripe::Refund.update("re_123", description: "Refund description") - ``` - -### ⚠️ Removed -- Removed deprecated `Sku` resource. -- Removed deprecated `Orders` resource. -- Removed deprecated `delete` method on `Subscription` resource. Please use `cancel` method instead. - ```ruby - # before - Stripe::Subscription::delete("sub_12345") - - # after - Stripe::Subscription::cancel("sub_12345") - ``` - - -## 7.1.0 - 2022-08-19 -* [#1116](https://github.com/stripe/stripe-ruby/pull/1116) API Updates - * Add support for new resource `CustomerCashBalanceTransaction` -* [#1118](https://github.com/stripe/stripe-ruby/pull/1118) Update AllowedChars in rubocop config -* [#1117](https://github.com/stripe/stripe-ruby/pull/1117) Refresh rubocop config. -* [#1115](https://github.com/stripe/stripe-ruby/pull/1115) Add a support section to the readme - -## 7.0.0 - 2022-08-02 - -Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the SDK, read more detailed description at https://github.com/stripe/stripe-ruby/wiki/Migration-guide-for-v7. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-08-01. - -"⚠️" symbol highlights breaking changes. - -* [#1106](https://github.com/stripe/stripe-ruby/pull/1106) API Updates -* [#1092](https://github.com/stripe/stripe-ruby/pull/1092) API Updates -* [#1090](https://github.com/stripe/stripe-ruby/pull/1090) Use auto-generation for `Invoice` methods -* [#1103](https://github.com/stripe/stripe-ruby/pull/1103) Next major release changes - -### ⚠️ Changed -* `retrieve_cash_balance` and `update_cash_balance` methods on `Customer` resource no longer requires the second argument to always be `nil`. The methods now now take in `customer_id`, `params`, and `opts` parameters. -* Update default bundle of CA certificates to April 26, 2022. - -### Deprecated -* Deprecate `delete` method on `Subscription` resource. Please use `cancel` method instead. - -### ⚠️ Removed -* Remove `details` method from `Issuing.Card` resource. The method was not supported. -* Remove `Issuing.CardDetails` resource. Read more at https://stripe.com/docs/issuing/cards/virtual. -* Remove `create` method from `ReportType` resource. The method was not supported. -* Remove `usage_record_summaries` method from `SubscriptionItem` resource. Please use `list_usage_record_summaries` method instead. -* Remove `AlipayAccount`, `BitcoinReceiver`, `BitcoinTransaction`, `Issuing::CardDetails`, `Recipient`, ` RecipientTransfer`, and `ThreeDSecure` resources. The resources were deprecated or no longer in use. -* Remove ability to list `Card` resource for a `Recipient`. -* Remove `cancel` method from `Transfer` resource. The method was deprecated. - -## 6.5.0 - 2022-06-29 -* [#1084](https://github.com/stripe/stripe-ruby/pull/1084) API Updates - * Add support for `deliver_card`, `fail_card`, `return_card`, and `ship_card` test helper methods on resource `Issuing.Card` -* [#1076](https://github.com/stripe/stripe-ruby/pull/1076) fix: Update logging to coerce ASCII-8BIT into UTF-8. - -## 6.4.0 - 2022-06-17 -* [#1073](https://github.com/stripe/stripe-ruby/pull/1073) API Updates - * Add support for `fund_cash_balance` test helper method on resource `Customer` -* [#1074](https://github.com/stripe/stripe-ruby/pull/1074) Support updating pre-release versions -* [#1072](https://github.com/stripe/stripe-ruby/pull/1072) Trigger workflows on beta branches -* [#1071](https://github.com/stripe/stripe-ruby/pull/1071) Use request_stripe_object for all requests -* [#1070](https://github.com/stripe/stripe-ruby/pull/1070) API Updates - - Switch from using meta-programing to generating explicit methods for custom methods. -* [#1069](https://github.com/stripe/stripe-ruby/pull/1069) chore: Stop special implementation of Account.persons method. - -## 6.3.0 - 2022-06-08 -* [#1063](https://github.com/stripe/stripe-ruby/pull/1063) fix: Update cash balance methods to no longer require nested ID. - -## 6.2.0 - 2022-05-23 -* [#1060](https://github.com/stripe/stripe-ruby/pull/1060) API Updates - * Add support for new resource `Apps.Secret` - -## 6.1.0 - 2022-05-19 -* [#1057](https://github.com/stripe/stripe-ruby/pull/1057) API Updates - * Add support for new resources `Treasury.CreditReversal`, `Treasury.DebitReversal`, `Treasury.FinancialAccountFeatures`, `Treasury.FinancialAccount`, `Treasury.FlowDetails`, `Treasury.InboundTransfer`, `Treasury.OutboundPayment`, `Treasury.OutboundTransfer`, `Treasury.ReceivedCredit`, `Treasury.ReceivedDebit`, `Treasury.TransactionEntry`, and `Treasury.Transaction` - * Add support for `retrieve_payment_method` method on resource `Customer` - * Add support for `list_owners` and `list` methods on resource `FinancialConnections.Account` - - - -## 6.0.0 - 2022-05-09 -* [#1056](https://github.com/stripe/stripe-ruby/pull/1056) API Updates - Major version release. The [migration guide](https://github.com/stripe/stripe-ruby/wiki/Migration-Guide-for-v6) contains more information. - - (⚠️ = breaking changes): - * ⚠️ Replace the legacy `Order` API with the new `Order` API. - * New methods: `cancel`, `list_line_items`, `reopen`, and `submit` - * Removed methods: `pay` and `return_order` - * Removed resources: `OrderItem` and `OrderReturn` - * ⚠️ Rename `FinancialConnections::Account.refresh` to `FinancialConnections::Account.refresh_account - -## 5.55.0 - 2022-05-05 -* [#1055](https://github.com/stripe/stripe-ruby/pull/1055) API Updates - * Add support for new resources `FinancialConnections.AccountOwner`, `FinancialConnections.AccountOwnership`, `FinancialConnections.Account`, and `FinancialConnections.Session` - - -## 5.54.0 - 2022-05-03 -* [#1053](https://github.com/stripe/stripe-ruby/pull/1053) API Updates - * Add support for new resource `CashBalance` - -## 5.53.0 - 2022-04-21 -* [#1050](https://github.com/stripe/stripe-ruby/pull/1050) API Updates - * Add support for `expire` test helper method on resource `Refund` - -## 5.52.0 - 2022-04-18 -* [#1046](https://github.com/stripe/stripe-ruby/pull/1046) [#1047](https://github.com/stripe/stripe-ruby/pull/1047) API Updates - * Add support for new resources `FundingInstructions` and `Terminal.Configuration` - -## 5.51.0 - 2022-04-15 -* [#1046](https://github.com/stripe/stripe-ruby/pull/1046) This release was incomplete and was yanked from RubyGems immediately after it was published. - -## 5.50.0 - 2022-04-13 -* [#1045](https://github.com/stripe/stripe-ruby/pull/1045) API Updates - * Add support for `increment_authorization` method on resource `PaymentIntent` - -## 5.49.0 - 2022-04-08 -* [#1043](https://github.com/stripe/stripe-ruby/pull/1043) API Updates - * Add support for `apply_customer_balance` method on resource `PaymentIntent` - -## 5.48.0 - 2022-03-30 -* [#1041](https://github.com/stripe/stripe-ruby/pull/1041) API Updates - * Add support for `cancel_action`, `process_payment_intent`, `process_setup_intent`, and `set_reader_display` methods on resource `Terminal.Reader` - -## 5.47.0 - 2022-03-29 -* [#1040](https://github.com/stripe/stripe-ruby/pull/1040) API Updates - * Add support for Search API - * Add support for `search` method on resources `Charge`, `Customer`, `Invoice`, `PaymentIntent`, `Price`, `Product`, and `Subscription` - -* [#1034](https://github.com/stripe/stripe-ruby/pull/1034) Add supporting classes for test helper generation - -## 5.46.0 - 2022-03-23 -* [#1039](https://github.com/stripe/stripe-ruby/pull/1039) API Updates - * Add support for `cancel` method on resource `Refund` -* [#992](https://github.com/stripe/stripe-ruby/pull/992) Add support for Search API - -## 5.45.0 - 2022-03-01 -* [#1035](https://github.com/stripe/stripe-ruby/pull/1035) API Updates - * Add support for new resource `TestHelpers.TestClock` - -## 5.44.0 - 2022-02-16 -* [#1032](https://github.com/stripe/stripe-ruby/pull/1032) API Updates - * Add support for `verify_microdeposits` method on resources `PaymentIntent` and `SetupIntent` - -## 5.43.0 - 2022-01-20 -* [#1031](https://github.com/stripe/stripe-ruby/pull/1031) API Updates - * Add support for new resource `PaymentLink` - -## 5.42.0 - 2021-12-13 -* [#1022](https://github.com/stripe/stripe-ruby/pull/1022) Add connection manager logging and include object IDs in logging. - -## 5.41.0 - 2021-11-16 -* [#1017](https://github.com/stripe/stripe-ruby/pull/1017) API Updates - * Add support for new resource `ShippingRate` - -## 5.40.0 - 2021-11-11 -* [#1015](https://github.com/stripe/stripe-ruby/pull/1015) API Updates - * Add support for `expire` method on resource `Checkout.Session` -* [#1013](https://github.com/stripe/stripe-ruby/pull/1013) Add tests for child resources. -* [#1012](https://github.com/stripe/stripe-ruby/pull/1012) Add tests for namespaced resources. -* [#1011](https://github.com/stripe/stripe-ruby/pull/1011) codegen: 3 more files - -## 5.39.0 - 2021-10-11 -* [#1010](https://github.com/stripe/stripe-ruby/pull/1010) API Updates - * Add support for `list_payment_methods` method on resource `Customer` - -## 5.38.0 - 2021-08-10 -* [#993](https://github.com/stripe/stripe-ruby/pull/993) Add `request_id` to RequestEndEvent -* [#991](https://github.com/stripe/stripe-ruby/pull/991) Codegen more files -* [#989](https://github.com/stripe/stripe-ruby/pull/989) Remove unused API error types from docs. - -## 5.37.0 - 2021-07-14 -* [#988](https://github.com/stripe/stripe-ruby/pull/988) API Updates - * Add support for `list_computed_upfront_line_items` method on resource `Quote` - -## 5.36.0 - 2021-07-09 -* [#987](https://github.com/stripe/stripe-ruby/pull/987) Add support for `Quote` API - -## 5.35.0 - 2021-06-30 -* [#985](https://github.com/stripe/stripe-ruby/pull/985) Update normalize_opts to use dup instead of clone. -* [#982](https://github.com/stripe/stripe-ruby/pull/982) Deprecate travis -* [#983](https://github.com/stripe/stripe-ruby/pull/983) Add support for making a request and receiving the response as a stream. - -## 5.34.0 - 2021-06-04 -* [#981](https://github.com/stripe/stripe-ruby/pull/981) API Updates - * Add support for `TaxCode` API. - -## 5.33.0 - 2021-05-19 -* [#979](https://github.com/stripe/stripe-ruby/pull/979) Add support for the Identify VerificationSession and VerificationReport APIs - -## 5.32.1 - 2021-04-05 -* Correct use of regexp `match` in gemspec for old versions of Ruby - -## 5.32.0 - 2021-04-05 -* [#973](https://github.com/stripe/stripe-ruby/pull/973) Reduce packed gem size - -## 5.31.0 - 2021-04-02 -* [#968](https://github.com/stripe/stripe-ruby/pull/968) Allow StripeClient to be configured per instance -* [#971](https://github.com/stripe/stripe-ruby/pull/971) On config change, only clear connection managers for changed config -* [#972](https://github.com/stripe/stripe-ruby/pull/972) Rename `Stripe.configuration` to `Stripe.config` -* [#970](https://github.com/stripe/stripe-ruby/pull/970) Reserve some critical field names when adding `StripeObject` accessors -* [#967](https://github.com/stripe/stripe-ruby/pull/967) CI: github actions - -## 5.30.0 - 2021-02-22 -* [#965](https://github.com/stripe/stripe-ruby/pull/965) Add support for the Billing Portal Configuration API - -## 5.29.1 - 2021-02-09 -* [#964](https://github.com/stripe/stripe-ruby/pull/964) Fix return value of `Customer#delete_discount` - -## 5.29.0 - 2021-01-05 -* [#952](https://github.com/stripe/stripe-ruby/pull/952) Allow client_id configuration on instance config - -## 5.28.0 - 2020-10-14 -* [#950](https://github.com/stripe/stripe-ruby/pull/950) Add configuration option for `write_timeout` for connections on Ruby 2.6+ - -## 5.27.0 - 2020-10-14 -* [#951](https://github.com/stripe/stripe-ruby/pull/951) Add support for the Payout Reverse API - -## 5.26.0 - 2020-09-29 -* [#949](https://github.com/stripe/stripe-ruby/pull/949) Add support for the `SetupAttempt` resource and List API - -## 5.25.0 - 2020-09-02 -* [#944](https://github.com/stripe/stripe-ruby/pull/944) Add support for the Issuing Dispute Submit API - -## 5.24.0 - 2020-08-26 -* [#939](https://github.com/stripe/stripe-ruby/pull/939) Extract configurations into separate object -* [#940](https://github.com/stripe/stripe-ruby/pull/940) Fix typo in documentation of `stripe_object.rb` - -## 5.23.1 - 2020-08-05 -* [#936](https://github.com/stripe/stripe-ruby/pull/936) Rename API resource's `request` method - -## 5.23.0 - 2020-08-05 -* [#937](https://github.com/stripe/stripe-ruby/pull/937) Add support for the `PromotionCode` resource and APIs - -## 5.22.0 - 2020-05-11 -* [#918](https://github.com/stripe/stripe-ruby/pull/918) Add support for the `LineItem` resource and APIs - -## 5.21.0 - 2020-04-29 -* [#917](https://github.com/stripe/stripe-ruby/pull/917) Add support for the `Price` resource and APIs - -## 5.20.0 - 2020-04-27 -* [#916](https://github.com/stripe/stripe-ruby/pull/916) Add new `.generate_header` method for webhooks - -## 5.19.0 - 2020-04-24 -* [#915](https://github.com/stripe/stripe-ruby/pull/915) Expose `Stripe::Webhook.compute_signature` publicly - -## 5.18.0 - 2020-04-22 -* [#911](https://github.com/stripe/stripe-ruby/pull/911) Add support for `BillingPortal` namespace and `Session` resource and APIs - -## 5.17.0 - 2020-02-26 -* [#907](https://github.com/stripe/stripe-ruby/pull/907) Add `StripeError#idempotent_replayed?` - -## 5.16.0 - 2020-02-26 -* [#906](https://github.com/stripe/stripe-ruby/pull/906) Add support for listing Checkout sessions -* [#903](https://github.com/stripe/stripe-ruby/pull/903) Upgrade to Rubocop 0.80 - -## 5.15.0 - 2020-02-10 -* [#902](https://github.com/stripe/stripe-ruby/pull/902) Add `request_begin` instrumentation callback - -## 5.14.0 - 2020-01-14 -* [#896](https://github.com/stripe/stripe-ruby/pull/896) Add support for `CreditNoteLineItem` -* [#894](https://github.com/stripe/stripe-ruby/pull/894) Clean up test output by capturing `$stderr` when we expect warnings -* [#892](https://github.com/stripe/stripe-ruby/pull/892) Explicitly pass a parameter as hash to be more ruby 2.7 friendly -* [#893](https://github.com/stripe/stripe-ruby/pull/893) Upgrade Rubocop to 0.79 - -## 5.13.0 - 2020-01-08 -* [#891](https://github.com/stripe/stripe-ruby/pull/891) Fix most Ruby 2.7 warnings - -## 5.12.1 - 2020-01-06 -* [#890](https://github.com/stripe/stripe-ruby/pull/890) Override API key with `client_secret` in `OAuth.token` - -## 5.12.0 - 2020-01-02 -* [#889](https://github.com/stripe/stripe-ruby/pull/889) Add support for retrieve source transaction API method - -## 5.11.0 - 2019-11-26 -* [#885](https://github.com/stripe/stripe-ruby/pull/885) Add support for `CreditNote` preview - -## 5.10.0 - 2019-11-08 -* [#882](https://github.com/stripe/stripe-ruby/pull/882) Add list_usage_record_summaries and list_source_transactions - -## 5.9.0 - 2019-11-07 -* [#870](https://github.com/stripe/stripe-ruby/pull/870) Add request instrumentation callback (see `README.md` for usage example) - -## 5.8.0 - 2019-11-05 -* [#879](https://github.com/stripe/stripe-ruby/pull/879) Add support for `Mandate` -* [#876](https://github.com/stripe/stripe-ruby/pull/876) Add additional per-request configuration documentation -* [#874](https://github.com/stripe/stripe-ruby/pull/874) Raise an error when requests params are invalid -* [#873](https://github.com/stripe/stripe-ruby/pull/873) Contributor Covenant - -## 5.7.1 - 2019-10-15 -* [#869](https://github.com/stripe/stripe-ruby/pull/869) Fixes the misnamed `connection_base=` setter to be named `connect_base=` - -## 5.7.0 - 2019-10-10 -* [#865](https://github.com/stripe/stripe-ruby/pull/865) Support backwards pagination with list's `#auto_paging_each` - -## 5.6.0 - 2019-10-04 -* [#861](https://github.com/stripe/stripe-ruby/pull/861) Nicer error when specifying non-nil non-string opt value - -## 5.5.0 - 2019-10-03 -* [#859](https://github.com/stripe/stripe-ruby/pull/859) User-friendly messages and retries for `EOFError`, `Errno::ECONNRESET`, `Errno::ETIMEDOUT`, and `Errno::EHOSTUNREACH` network errors - -## 5.4.1 - 2019-10-01 -* [#858](https://github.com/stripe/stripe-ruby/pull/858) Drop Timecop dependency - -## 5.4.0 - 2019-10-01 -* [#857](https://github.com/stripe/stripe-ruby/pull/857) Move to monotonic time for duration calculations - -## 5.3.0 - 2019-10-01 -* [#853](https://github.com/stripe/stripe-ruby/pull/853) Support `Stripe-Should-Retry` header - -## 5.2.0 - 2019-09-19 -* [#851](https://github.com/stripe/stripe-ruby/pull/851) Introduce system for garbage collecting connection managers - -## 5.1.1 - 2019-09-04 -* [#845](https://github.com/stripe/stripe-ruby/pull/845) Transfer the request_id from the http_headers to error. - -## 5.1.0 - 2019-08-27 -* [#841](https://github.com/stripe/stripe-ruby/pull/841) Retry requests on a 429 that's a lock timeout - -## 5.0.1 - 2019-08-20 -* [#836](https://github.com/stripe/stripe-ruby/pull/836) Increase connection keep alive timeout to 30 seconds - -## 5.0.0 - 2019-08-20 -Major version release. The [migration guide](https://github.com/stripe/stripe-ruby/wiki/Migration-guide-for-v5) contains a detailed list of backwards-incompatible changes with upgrade instructions. - -Pull requests included in this release (cf. [#815](https://github.com/stripe/stripe-ruby/pull/815)) (⚠️ = breaking changes): -* ⚠️ [#813](https://github.com/stripe/stripe-ruby/pull/813): Convert library to use built-in `Net::HTTP` -* ⚠️ [#816](https://github.com/stripe/stripe-ruby/pull/816): Make `code` argument in `CardError` named instead of positional. -* ⚠️ [#817](https://github.com/stripe/stripe-ruby/pull/817): Drop support for very old Ruby versions. -* [#818](https://github.com/stripe/stripe-ruby/pull/818): Bump Rubocop to latest version -* [#819](https://github.com/stripe/stripe-ruby/pull/819): Ruby minimum version increase followup -* ⚠️ [#820](https://github.com/stripe/stripe-ruby/pull/820): Remove old deprecated methods -* ⚠️ [#823](https://github.com/stripe/stripe-ruby/pull/823): Remove all alias for list methods -* ⚠️ [#826](https://github.com/stripe/stripe-ruby/pull/826): Remove `UsageRecord.create` method -* ⚠️ [#827](https://github.com/stripe/stripe-ruby/pull/827): Remove `IssuerFraudRecord` -* [#811](https://github.com/stripe/stripe-ruby/pull/811): Add `ErrorObject` to `StripeError` exceptions -* [#828](https://github.com/stripe/stripe-ruby/pull/828): Tweak retry logic to be a little more like stripe-node -* [#829](https://github.com/stripe/stripe-ruby/pull/829): Reset connections when connection-changing configuration changes (optional) -* [#830](https://github.com/stripe/stripe-ruby/pull/830): Fix inverted sign for 500 retries -* ⚠️[#831](https://github.com/stripe/stripe-ruby/pull/831): Remove a few more very old deprecated methods -* [#832](https://github.com/stripe/stripe-ruby/pull/832): Minor cleanup in `StripeClient` -* [#833](https://github.com/stripe/stripe-ruby/pull/833): Do better bookkeeping when tracking state in `Thread.current` -* [#834](https://github.com/stripe/stripe-ruby/pull/834): Add `Invoice.list_upcoming_line_items` method - -## 4.24.0 - 2019-08-12 -* [#825](https://github.com/stripe/stripe-ruby/pull/825) Add `SubscriptionItem.create_usage_record` method - - This release also removed the `SubscriptionSchedule.revisions` method. This should have been included in the previous release (4.23.0) - -## 4.23.0 - 2019-08-09 -* [#824](https://github.com/stripe/stripe-ruby/pull/824) Remove SubscriptionScheduleRevision - - This is technically a breaking change. We've chosen to release it as a minor vesion bump because the associated API is unused. - -## 4.22.1 - 2019-08-09 -* [#808](https://github.com/stripe/stripe-ruby/pull/808) Unify request/response handling - -## 4.22.0 - 2019-07-30 -* [#821](https://github.com/stripe/stripe-ruby/pull/821) Listing `BalanceTransaction` objects now uses `/v1/balance_transactions` instead of `/v1/balance/history` - -## 4.21.3 - 2019-07-15 -* [#810](https://github.com/stripe/stripe-ruby/pull/810) Better error message when passing non-string to custom method - -## 4.21.2 - 2019-07-05 -* [#806](https://github.com/stripe/stripe-ruby/pull/806) Revert back to `initialize_from` from `Util.convert_to_stripe_object` - -## 4.21.1 - 2019-07-04 -* [#807](https://github.com/stripe/stripe-ruby/pull/807) Add gem metadata - -## 4.21.0 - 2019-06-28 -* [#803](https://github.com/stripe/stripe-ruby/pull/803) Add support for the `SetupIntent` resource and APIs - -## 4.20.1 - 2019-06-28 -* [#805](https://github.com/stripe/stripe-ruby/pull/805) Fix formatting in `ConnectionFailed` error message - -## 4.20.0 - 2019-06-24 -* [#800](https://github.com/stripe/stripe-ruby/pull/800) Enable request latency telemetry by default - -## 4.19.0 - 2019-06-17 -* [#770](https://github.com/stripe/stripe-ruby/pull/770) Add support for `CustomerBalanceTransaction` resource and APIs - -## 4.18.1 - 2019-05-27 -* [#789](https://github.com/stripe/stripe-ruby/pull/789) Allow `Order#pay` to be called without arguments - -## 4.18.0 - 2019-05-23 -* [#783](https://github.com/stripe/stripe-ruby/pull/783) Add support for `radar.early_fraud_warning` resource - -## 4.17.0 - 2019-05-14 -* [#779](https://github.com/stripe/stripe-ruby/pull/779) Add support for the Capability resource and APIs - -## 4.16.0 - 2019-04-24 -* [#760](https://github.com/stripe/stripe-ruby/pull/760) Add support for the `TaxRate` resource and APIs - -## 4.15.0 - 2019-04-22 -* [#762](https://github.com/stripe/stripe-ruby/pull/762) Add support for the `TaxId` resource and APIs - -## 4.14.0 - 2019-04-18 -* [#758](https://github.com/stripe/stripe-ruby/pull/758) Add support for the `CreditNote` resource and APIs - -## 4.13.0 - 2019-04-16 -* [#766](https://github.com/stripe/stripe-ruby/pull/766) Relax constraints on objects that we'll accept as a file (now they just need to respond to `#read`) - -## 4.12.0 - 2019-04-02 -* [#752](https://github.com/stripe/stripe-ruby/pull/752) Add `.delete` class method on deletable API resources -* [#754](https://github.com/stripe/stripe-ruby/pull/754) Add class methods for all custom API requests (e.g. `Charge.capture`) - -## 4.11.0 - 2019-03-26 -* [#753](https://github.com/stripe/stripe-ruby/pull/753) Add a global proxy configuration parameter - -## 4.10.0 - 2019-03-18 -* [#745](https://github.com/stripe/stripe-ruby/pull/745) Add support for the `PaymentMethod` resource and APIs -* [#747](https://github.com/stripe/stripe-ruby/pull/747) Add support for retrieving a Checkout `Session` -* [#748](https://github.com/stripe/stripe-ruby/pull/748) Add support for deleting a Terminal `Location` and `Reader` - -## 4.9.1 - 2019-03-18 -* [#750](https://github.com/stripe/stripe-ruby/pull/750) Catch error and warn if unable to remove a method - -## 4.9.0 - 2019-02-12 -* [#739](https://github.com/stripe/stripe-ruby/pull/739) Add support for `SubscriptionSchedule` and `SubscriptionScheduleRevision` - -## 4.8.1 - 2019-02-11 -* [#743](https://github.com/stripe/stripe-ruby/pull/743) Fix bug in file uploading introduced in #741 - -## 4.8.0 - 2019-02-03 -* [#741](https://github.com/stripe/stripe-ruby/pull/741) Use `FaradayStripeEncoder` to encode all parameter styles - -## 4.7.1 - 2019-02-01 -* [#740](https://github.com/stripe/stripe-ruby/pull/740) Fix query encoding for integer-indexed maps - -## 4.7.0 - 2019-01-23 -* [#735](https://github.com/stripe/stripe-ruby/pull/735) Rename `CheckoutSession` to `Session` and move it under the `Checkout` namespace. This is a breaking change, but we've reached out to affected merchants and all new merchants would use the new approach. - -## 4.6.0 - 2019-01-21 -* [#736](https://github.com/stripe/stripe-ruby/pull/736) Properly serialize `individual` on `Account` objects - -## 4.5.0 - 2019-01-02 -* [#719](https://github.com/stripe/stripe-ruby/pull/719) Generate OAuth authorize URLs for Express accounts as well as standard - -## 4.4.1 - 2018-12-31 -* [#718](https://github.com/stripe/stripe-ruby/pull/718) Fix an error message typo - -## 4.4.0 - 2018-12-21 -* [#716](https://github.com/stripe/stripe-ruby/pull/716) Add support for the `CheckoutSession` resource - -## 4.3.0 - 2018-12-10 -* [#711](https://github.com/stripe/stripe-ruby/pull/711) Add support for account links - -## 4.2.0 - 2018-11-28 -* [#705](https://github.com/stripe/stripe-ruby/pull/705) Add support for the `Review` APIs - -## 4.1.0 - 2018-11-27 -* [#695](https://github.com/stripe/stripe-ruby/pull/695) Add support for `ValueList` and `ValueListItem` for Radar - -## 4.0.3 - 2018-11-19 -* [#703](https://github.com/stripe/stripe-ruby/pull/703) Don't use `Net::HTTP::Persistent` on Windows where it's not well supported - -## 4.0.2 - 2018-11-16 -* [#701](https://github.com/stripe/stripe-ruby/pull/701) Require minimum Faraday 0.13 for proper support of persistent connections - -## 4.0.1 - 2018-11-15 -* [#699](https://github.com/stripe/stripe-ruby/pull/699) Only send telemetry if `Request-Id` was present in the response - -## 4.0.0 - 2018-11-15 -* [#698](https://github.com/stripe/stripe-ruby/pull/698) Use persistent connections by default through `Net::HTTP::Persistent` -* [#698](https://github.com/stripe/stripe-ruby/pull/698) Drop support for Ruby 2.0 (which we consider a breaking change here) - -## 3.31.1 - 2018-11-12 -* [#697](https://github.com/stripe/stripe-ruby/pull/697) Send telemetry in milliseconds specifically - -## 3.31.0 - 2018-11-12 -* [#696](https://github.com/stripe/stripe-ruby/pull/696) Add configurable telemetry to gather information on client-side request latency - -## 3.30.0 - 2018-11-08 -* [#693](https://github.com/stripe/stripe-ruby/pull/693) Add new API endpoints for the `Invoice` resource. - -## 3.29.0 - 2018-10-30 -* [#692](https://github.com/stripe/stripe-ruby/pull/692) Add support for the `Person` resource -* [#694](https://github.com/stripe/stripe-ruby/pull/694) Add support for the `WebhookEndpoint` resource - -## 3.28.0 - 2018-09-24 -* [#690](https://github.com/stripe/stripe-ruby/pull/690) Add support for Stripe Terminal - -## 3.27.0 - 2018-09-24 -* [#689](https://github.com/stripe/stripe-ruby/pull/689) Rename `FileUpload` to `File` - -## 3.26.1 - 2018-09-14 -* [#688](https://github.com/stripe/stripe-ruby/pull/688) Fix hash equality on `StripeObject` - -## 3.26.0 - 2018-09-05 -* [#681](https://github.com/stripe/stripe-ruby/pull/681) Add support for reporting resources - -## 3.25.0 - 2018-08-28 -* [#678](https://github.com/stripe/stripe-ruby/pull/678) Allow payment intent `#cancel`, `#capture`, and `#confirm` to take their own parameters - -## 3.24.0 - 2018-08-27 -* [#675](https://github.com/stripe/stripe-ruby/pull/675) Remove support for `BitcoinReceiver` write-actions - -## 3.23.0 - 2018-08-23 -* [#676](https://github.com/stripe/stripe-ruby/pull/676) Add support for usage record summaries - -## 3.22.0 - 2018-08-15 -* [#674](https://github.com/stripe/stripe-ruby/pull/674) Use integer-indexed encoding for all arrays - -## 3.21.0 - 2018-08-03 -* [#671](https://github.com/stripe/stripe-ruby/pull/671) Add cancel support for topups - -## 3.20.0 - 2018-08-03 -* [#669](https://github.com/stripe/stripe-ruby/pull/669) Add support for file links - -## 3.19.0 - 2018-07-27 -* [#666](https://github.com/stripe/stripe-ruby/pull/666) Add support for scheduled query runs (`Stripe::Sigma::ScheduledQueryRun`) for Sigma - -## 3.18.0 - 2018-07-26 -* [#665](https://github.com/stripe/stripe-ruby/pull/665) Add support for Stripe Issuing - -## 3.17.2 - 2018-07-19 -* [#664](https://github.com/stripe/stripe-ruby/pull/664) Don't colorize log output being sent to a configured logger - -## 3.17.1 - 2018-07-19 -* [#663](https://github.com/stripe/stripe-ruby/pull/663) Internal improvements to `ApiResource.class_url` - -## 3.17.0 - 2018-06-28 -* [#658](https://github.com/stripe/stripe-ruby/pull/658) Add support for `partner_id` from `Stripe.set_app_info` - -## 3.16.0 - 2018-06-28 -* [#657](https://github.com/stripe/stripe-ruby/pull/657) Add support for payment intents - -## 3.15.0 - 2018-05-10 -* [#649](https://github.com/stripe/stripe-ruby/pull/649) Freeze all string literals - -## 3.14.0 - 2018-05-09 -* [#645](https://github.com/stripe/stripe-ruby/pull/645) Add support for issuer fraud records - -## 3.13.1 - 2018-05-07 -* [#647](https://github.com/stripe/stripe-ruby/pull/647) Merge query parameters coming from path with `params` argument - -## 3.13.0 - 2018-04-11 -* [#498](https://github.com/stripe/stripe-ruby/pull/498) Add support for flexible billing primitives - -## 3.12.1 - 2018-04-05 -* [#636](https://github.com/stripe/stripe-ruby/pull/636) Fix a warning for uninitialized instance variable `@additive_params` - -## 3.12.0 - 2018-04-05 -* [#632](https://github.com/stripe/stripe-ruby/pull/632) Introduce `additive_object_param` so that non-`metadata` subobjects don't zero their keys as they're being replaced - -## 3.11.0 - 2018-02-26 -* [#628](https://github.com/stripe/stripe-ruby/pull/628) Add support for `code` attribute on all Stripe exceptions - -## 3.10.0 - 2018-02-21 -* [#627](https://github.com/stripe/stripe-ruby/pull/627) Add support for topups - -## 3.9.2 - 2018-02-12 -* [#625](https://github.com/stripe/stripe-ruby/pull/625) Skip calling `to_hash` for `nil` - -## 3.9.1 - 2017-12-15 -* [#616](https://github.com/stripe/stripe-ruby/pull/616) Support all file-like objects for uploads with duck typed checks on `path` and `read` (we previously whitelisted only certain classes) - -## 3.9.0 - 2017-12-08 -* [#613](https://github.com/stripe/stripe-ruby/pull/613) Introduce new `IdempotencyError` type for idempotency-specific failures - -## 3.8.2 - 2017-12-07 -* [#612](https://github.com/stripe/stripe-ruby/pull/612) Fix integer-indexed array encoding when sent as query parameter (subscription items can now be used when fetching an upcoming invoice) - -## 3.8.1 - 2017-12-06 -* [#611](https://github.com/stripe/stripe-ruby/pull/611) Support `Tempfile` (as well as `File`) in file uploads - -## 3.8.0 - 2017-10-31 -* [#606](https://github.com/stripe/stripe-ruby/pull/606) Support for exchange rates APIs - -## 3.7.0 - 2017-10-26 -* [#603](https://github.com/stripe/stripe-ruby/pull/603) Support for listing source transactions - -## 3.6.0 - 2017-10-17 -* [#597](https://github.com/stripe/stripe-ruby/pull/597) Add static methods to manipulate resources from parent - * `Account` gains methods for external accounts and login links (e.g. `.create_account`, `create_login_link`) - * `ApplicationFee` gains methods for refunds - * `Customer` gains methods for sources - * `Transfer` gains methods for reversals - -## 3.5.3 - 2017-10-16 -* [#594](https://github.com/stripe/stripe-ruby/pull/594) Make sure that `StripeObject`'s `#deep_copy` maintains original class -* [#595](https://github.com/stripe/stripe-ruby/pull/595) Allow `Object#method` to be called on `StripeObject` even if it conflicts with an accessor -* [#596](https://github.com/stripe/stripe-ruby/pull/596) Encode arrays as integer-indexed hashes where appropriate -* [#598](https://github.com/stripe/stripe-ruby/pull/598) Don't persist `idempotency_key` opt between requests - -## 3.5.2 - 2017-10-13 -* [#592](https://github.com/stripe/stripe-ruby/pull/592) Bring back `Marshal.dump/load` support with custom marshal encoder/decoder - -## 3.5.1 - 2017-10-12 -* [#591](https://github.com/stripe/stripe-ruby/pull/591) Use thread-local `StripeClient` instances for thread safety - -## 3.5.0 - 2017-10-11 -* [#589](https://github.com/stripe/stripe-ruby/pull/589) Rename source `delete` to `detach` (and deprecate the former) - -## 3.4.1 - 2017-10-05 -* [#586](https://github.com/stripe/stripe-ruby/pull/586) Log query strings as well as form bodies with STRIPE_LOG -* [#588](https://github.com/stripe/stripe-ruby/pull/588) Require minimum Faraday 0.10 for bug fix in parameter encoding - -## 3.4.0 - 2017-09-20 -* Mark legacy Bitcoin API as deprecated, and remove corresponding tests -* Mark recipients API as deprecated, and remove recipient card tests - -## 3.3.2 - 2017-09-20 -* Correct minimum required Ruby version in gemspec (it's 2.0.0) - -## 3.3.1 - 2017-08-18 -* Only parse webhook payload after verification to decrease likelihood of - attack - -## 3.3.0 - 2017-08-11 -* Add support for standard library logger interface with `Stripe.logger` -* Error logs now go to stderr if using `Stripe.log_level`/`STRIPE_LOG` -* `Stripe.log_level`/`STRIPE_LOG` now support `Stipe::LEVEL_ERROR` - -## 3.2.0 - 2017-08-03 -* Add logging for request retry account and `Stripe-Account` header - -## 3.1.0 - 2017-08-03 -* Implement request logging with `Stripe.log_level` and `STRIPE_LOG` - -## 3.0.3 - 2017-07-28 -* Revert `nil` to empty string coercion from 3.0.2 -* Handle `invalid_client` OAuth error code -* Improve safety of error handling logic safer for unrecognized OAuth error codes - -## 3.0.2 - 2017-07-12 -**Important:** This version is non-functional and has been yanked in favor of 3.0.3. -* Convert `nil` to empty string when serializing parameters (instead of opaquely dropping it) -- NOTE: this change has since been reverted - -## 3.0.1 - 2017-07-11 -* Properties set with an API resource will now serialize that resource's ID if possible -* API resources will throw an ArgumentError on save if a property has been with an API resource that cannot be serialized - -## 3.0.0 - 2017-06-27 -* `#pay` on invoice now takes params as well as opts - -## 2.12.0 - 2017-06-20 -* Add support for ephemeral keys - -## 2.11.0 - 2017-05-26 -* Warn when keys that look like opts are included as parameters - -## 2.10.0 - 2017-05-25 -* Add support for account login links - -## 2.9.0 - 2017-05-18 -* Support for OAuth operations in `Stripe::OAuth` - -## 2.8.0 - 2017-04-28 -* Support for checking webhook signatures - -## 2.7.0 - 2017-04-26 -* Add model `InvoiceLineItem` - -## 2.6.0 - 2017-04-26 -* Add `OBJECT_NAME` constants to all API resources - -## 2.5.0 - 2017-04-24 -* Make `opts` argument in `Util.convert_to_stripe_object` optional - -## 2.4.0 - 2017-04-18 -* Add `Stripe.set_app_info` for use by plugin creators - -## 2.3.0 - 2017-04-14 -* Add question mark accessor when assigning boolean value to undefined field - -## 2.2.1 - 2017-04-07 -* Declare minimum required Faraday as 0.9 - -## 2.2.0 - 2017-04-06 -* Add support for payouts and recipient transfers - -## 2.1.0 - 2017-03-17 -* Support for detaching sources from customers - -## 2.0.3 - 2017-03-16 -* Fix marshalling of `StripeObjects` that have an embedded client - -## 2.0.2 - 2017-03-16 -* Fix bad field reference when recovering from a JSON parsing problem - -## 2.0.1 - 2017-02-22 -* Fix multipart parameter encoding to repair broken file uploads - -## 2.0.0 - 2017-02-14 -* Drop support for Ruby 1.9 -* Allow HTTP client that makes Stripe calls to be configured via Faraday -* Drop RestClient -* Switch to OpenAPI 2.0 spec and generated fixtures in test suite -* Switch to Webmock in test suite - -## 1.58.0 - 2017-01-19 -* Remove erroneously added list methods for `Source` model - -## 1.57.1 - 2016-11-28 -* Disallow sending protected fields along with API resource `.update` - -## 1.57.0 - 2016-11-21 -* Add retrieve method for 3-D Secure resources - -## 1.56.2 - 2016-11-17 -* Improve `StripeObject`'s `#to_s` to better handle how embedded objects are displayed - -## 1.56.1 - 2016-11-09 -* Fix (fairly serious) memory like in `StripeObject` - -## 1.56.0 - 2016-10-24 -* Add accessors for new fields added in `#update_attributes` -* Handle multi-plan subscriptions through new subscription items -* Handle 403 status codes from the API - -## 1.55.1 - 2016-10-24 -Identical to 1.56.0 above. I incorrectly cut a patch-level release. - -## 1.55.0 - 2016-09-15 -* Add support for Apple Pay domains - -## 1.54.0 - 2016-09-01 -* Whitelist errors that should be retried; scope to known socket and HTTP errors - -## 1.53.0 - 2016-08-31 -* Relax version constraint on rest-client (and by extension mime-types) for users on Ruby 2+ - -## 1.52.0 - 2016-08-30 -* Make sure `Subscription`'s `source` is saved with its parent - -## 1.51.1 - 2016-08-30 -* Make sure `Account`'s `external_account` is saved with its parent - -## 1.51.0 - 2016-08-26 -* Error when an array of maps is detected that cannot be accurately encoded -* Start using strings for header names instead of symbols for better clarity - -## 1.50.1 - 2016-08-25 -* Fix encoding of arrays of maps where maps unequal sets of keys - -## 1.50.0 - 2016-08-15 -* Allow sources to be created - -## 1.49.0 - 2016-07-28 -* Add top-level `Source` model - -## 1.48.0 - 2016-07-12 -* Add `ThreeDSecure` model for 3-D secure payments - -## 1.47.0 - 2016-07-11 -* Allow rest-client version 2.0+ to be used with the gem - -## 1.46.0 - 2016-07-07 -* Allow retry when a 409 conflict is encountered - -## 1.45.0 - 2016-07-07 -* Do not send subresources when updating except when explicitly told to do so (see #433) - -## 1.44.0 - 2016-06-29 -* Add `update` class method to all resources that can be updated - -## 1.43.1 - 2016-06-17 -* Fix type of resource returned from `Order#return_order` - -## 1.43.0 - 2016-05-20 -* Allow Relay orders to be returned and add associated types -* Support Alipay account retrieval and deletion - -## 1.42.0 - 2016-05-04 -* Add support for the new /v1/subscriptions endpoint (retrieve, list, create, update, and delete) - -## 1.41.0 - 2016-04-13 -* Add global `stripe_account` option that adds a `Stripe-Account` header to all requests - -## 1.40.0 - 2016-04-06 -* Fix bug that omitted subresources from serialization - -## 1.39.0 - 2016-03-31 -* Update CA cert bundle for compatibility with OpenSSL versions below 1.0.1 - -## 1.38.0 - 2016-03-18 -* Allow `opts` to be passed to an API resource's `#save` method - -## 1.37.0 - 2016-03-14 -* Add `Account#reject` to support the new API feature - -## 1.36.2 - 2016-03-14 -* Fix reference to non-existent `#url` in `ListObject` - -## 1.36.1 - 2016-03-04 -* Fix serialization when subhash given to `#save` or `#update_attributes` - -## 1.36.0 - 2016-02-08 -* Add `CountrySpec` model for looking up country payment information - -## 1.35.1 - 2016-02-03 -* Add compatibility layer for old API versions on `Charge#refund` - -## 1.35.0 - 2016-02-01 -* Allow CA cert bundle location to be configured -* Updated bundled CA certs - -## 1.34.0 - 2016-01-25 -* Add support for deleting products and SKUs - -## 1.33.1 - 2016-01-21 -* Pass through arguments of `Charge#refund` - -## 1.33.0 - 2016-01-19 -* Re-implement `Charge#refund` helper to use the modern endpoint suggested by docs - -## 1.32.1 - 2016-01-07 -* Fix bug where ivar left uninitialized in StripeObject could error on serialization -* Fix bug where a nil customer from API could error Bitcoin model on refresh - -## 1.32.0 - 2016-01-05 -* Add configuration to optionally retry network failures -* Use modern API endpoint for producing application fee refunds - -## 1.31.0 - 2015-10-29 -* Add BankAccount#verify convenience method - -## 1.30.3 - 2015-10-28 -* Fix bug where arrays that were not `additional_owners` were not properly encoded for requests - -## 1.30.2 - 2015-10-12 -* Fix bug where `opts` didn't properly propagate to descendant `StripeObjects` - -## 1.30.1 - 2015-10-10 -* Fix bug that prevent lists of hashes from being URI-encoded properly -* Fix bug where filter conditions were not making it past the first instantiated `ListObject` - -## 1.30.0 - 2015-10-09 -* Add `StripeObject#deleted?` for a reliable way to check whether an object is alive -* Deprecate `StripeObject#refresh_from` -* New parameter encoding scheme that doesn't use `URI.escape` - -## 1.29.1 - 2015-10-06 -* Fix bug where ampersands were not being properly encoded - -## 1.29.0 - 2015-10-05 -* Add pagination helpers `#auto_paging_each`, `#previous_page`, and `#next_page` - -## 1.28.1 - 2015-10-05 -* Fix URI being referenced by file upload resources - -## 1.28.0 - 2015-10-05 -* Make StripeObject's #save "upsert"-like; creates an object if new -* Add #update_attributes to StripeObject for safe mass assignment -* Properly mass assign attributes on calls to #save -* Add question mark helpers for boolean fields (e.g. #paid? as well as old #paid) -* Fix a bug that broke the API for StripeObject initialization -* Remove use of deprecated URI.escape - -## 1.27.2 - 2015-09-25 -* Correct the URLs used to fetch Bitcoin transactions. - -## 1.27.1 - 2015-09-20 -* Use hash rockets for backwards compatibility. - -## 1.27.0 - 2015-09-14 -* Add Orders, Products, and SKUs for Relay - -## 1.26.0 - 2015-09-11 -* Add support for 429 Rate Limited response - -## 1.25.0 - 2015-08-17 -* Added support for refund listing and retrieval without an associated charge - -## 1.24.0 - 2015-08-03 -* Added support for deleting managed accounts -* Added support for dispute listing and retrieval -* Bugfix: token objects now are the correct class - -## 1.23.0 - 2015-07-06 -* Added request IDs and HTTP headers to errors - -## 1.22.0 - 2015-06-10 -* Added support for bank accounts and debit cards in managed accounts (via the `external_accounts` param) - -## 1.21.0 - 2015-04-14 -* Remove TLS cert revocation check (all pre-heartbleed certs have expired) -* Bugfix: don't unset keys when they don't exist on StripeObject - -## 1.20.4 - 2015-03-26 -* Raise an error when explicitly passing nil as the API key on resource methods -* Fix error when passing an API key to Balance.retrieve (github issue #232) - -## 1.20.3 - 2015-03-13 -* Fixed error when updating certain resources (github issue #224) - -## 1.20.2 - 2015-03-10 -* Added support for updating nested hashes besides `metadata` (which was already supported) -* Fixed bug in balance retrieval - -## 1.20.1 - 2015-02-26 -* Updated Card to point to customer sources endpoint when customer property is set - -## 1.20.0 - 2015-02-19 -* Added Update & Delete operations to Bitcoin Receivers - -## 1.19.1 - 2015-02-18 -* Fixed fetching upcoming invoice/paying invoice methods - -## 1.19.0 - 2015-02-15 -* Support for new Transfers /reversals endpoint -* Account retrieval now optionally accepts an account ID -* Better support for passing custom headers, like Stripe-Account, through requests - -## 1.18.0 - 2015-01-21 -* 1 major enhancement: - * Added support for making bitcoin charges through BitcoinReceiver source object - -## 1.17.3 - 2015-01-12 -* 1 bugfix: - * Fixed API key propagation for ApplicationFee#refund - -## 1.17.2 - 2015-01-08 -* 1 bugfix: - * Fixed API key propagation for child resources - -## 1.17.1 - 2015-01-07 -* 2 minor enhacements: - * Fixed dependencies for Ruby versions less than 1.9.3 - * Added deauthorize method to Account object - -## 1.17.0 - 2014-12-15 -* 1 major enhacement: - * File uploads resource was added (for uploading pdf or image documents for disputes) - -## 1.16.1 - 2014-12-19 -* 2 minor enhancements: - * Ability to send idempotent requests - * Ability to specify stripe account as a header - -## 1.16.0 - 2014-10-08 -* 1 minor enhacement: - * Coupons now support update operations - useful for manipulating metadata - -## 1.15.0 - 2014-07-26 -* 1 major enhacement: - * Application Fee refunds now a list instead of array - -## 1.14.0 - 2014-06-17 -* 1 major enhancement: - * Add metadata for refunds and disputes - -## 1.13.0 - 2014-05-28 -* 1 major enhancement: - * Support for canceling transfers - -## 1.12.0 - 2014-05-21 -* 1 major enhancement: - * Support for cards for recipients - -## 1.11.0 - 2014-04-09 -* 2 minor enhancements: - * Update included ca bundles - * Implement certificate blacklisting - -## 1.10.2 - 2014-02-18 -* 1 minor enhancement: - * Add create_subscription on Customer resources, so you can create - subscriptions without needing to retrieve the customer first (github - issue #120) - -## 1.10.1 - 2014-02-03 -* 1 bugfix: - * Fix marshaling of StripeObjects - -## 1.10.0 - 2014-01-29 -* 2 major enhancements - * Support for multiple subscriptions per customer - * Testing ruby 2.1.0 - -* 2 minor enhancements - * Replace multi_json with json - * Allow #save to take opts (for :expand) - -* 1 bugfix - * Fix #try and #respond_to? on StripeObjects - -## 1.9.9 - 2013-12-02 -* 1 major enhancement - * Add ApplicationFee resource - -## 1.8.9 - 2013-11-14 -* 2 bugfixes: - * Fix gemspec dependencies so the gem doesn't break for Ruby 1.8 users - * Fix api_resource_test to not use returns as a way of testing rescue behavior - -## 1.8.8 - 2013-10-3 -* 1 major enhancement - * Add support for metadata on resources - -## 1.8.7 - 2013-08-18 -* 1 minor enhancement - * Add support for closing disputes. - -## 1.8.6 - 2013-08-13 -* 1 major enhancement - * Add Balance and BalanceTransaction resources - -## 1.8.5 - 2013-08-12 -* 1 major enhancement - * Add support for unsetting attributes by setting to nil. This permits unsetting email and description on customers and description on charges. Setting properties to a blank string is now an error. - * Attempting to set an object's id is now an error - -## 1.8.4 - 2013-07-11 -* 1 major enhancement - * Add support for new cards API (Stripe API version - 2013-07-05) - -## 1.8.3 - 2013-05-06 -* 1 bugfix: - * Fix handling of per-call API keys (github issue #67) - -## 1.8.2 - 2013-05-01 -* 3 minor enhancements: - * Use to_sym instead of type checking for minor performance improvement (github issue #59) - * Handle low-memory situations without throwing an exception (github issue #61) - * Add an Customer#upcoming_invoice convenience method (github issue #65) - -* 1 bugfix: - * Allow updating resources without first retrieving them (github issue #60) - -## 1.8.1 - 2013-04-19 -* 1 minor enhancement: - * Add support for specifying an API key when retrieving an upcoming invoice - -## 1.8.0 - 2013-04-11 -* 1 major enhancement: - * Add new Recipient resource - * Allow Transfers to be createable - -## 1.7.11 - 2013-02-21 -* 1 minor enhancement - * Add 'id' to the list of permanent attributes - -## 1.7.10 - 2013-02-01 -* 1 major enhancement - * Add support for passing options when retrieving Stripe objects e.g., Stripe::Charge.retrieve({id:"foo", expand:["customer"]}) Stripe::Charge("foo") is still supported as well - -## 1.7.9 - 2013-01-15 -* 1 major enhancement - * Add support for setting a Stripe API version override. - -## 1.7.8 - 2012-11-21 -* 1 bugfix - * Relax the version constraint on multi_json (github issue #44) - -## 1.7.7 - 2012-11-07 -* 1 minor enhancement: - * Add support for updating charge disputes - -* 1 bugfix - * Fix Account API resource bug - -## 1.7.6 - 2012-10-30 -* 1 major enhancement - * Add support for creating invoices - -## 1.7.5 - 2012-10-25 -* 1 major enhancement - * Add support for new API lists - -## 1.7.4 - 2012-10-08 -* 1 bugfix - * Fix bug introduced in 1.7.3 calling API methods that take no - arguments, like Stripe::Invoice#pay (github issue #42) - -## 1.7.3 - 2012-09-14 -* 2 bugfixes - * Make sure that both keys and values of GET params are URL-encoded. NOTE: If you were previously URL-encoding values yourself, you may need to adjust your code. - * URL-encode POST params directly, instead of allowing rest-client to do it to work around an unfortunate interaction with the hashery gem (github issue #38) - -## 1.7.2 - 2012-08-31 -* 1 major enhancement - * Add support for new pay and update methods for Invoice objects - -## 1.7.1 - 2012-08-15 -* 1 major enhancement - * Add new Account API resource - -## 1.7.0 - 2012-05-17 -* 3 major enhancements: - * Switch from vendored stripe-json to multi_json for all JSON parsing and rendering. This should not impact programmatic usage of the library, but may cause small rendering differences from, e.g., StripeObject#inspect (github issue #22) - * Add new delete_discount method to Customer objects - * Add new Transfer API resource - -* 2 minor enhancements: - * Switch from HTTP Basic auth to Bearer auth (Note: Stripe will support Basic auth for the indefinite future, but recommends Bearer auth when possible going forward) - * Numerous test suite improvements - -## 1.6.3 - 2012-03-22 -* 1 bugfix: - * Encode GET query strings ourselves instead of using rest-client to work around a bug - -## 1.6.2 - 2012-02-24 -* 1 bugfix: - * Correct argument handling in StripeObject#as_json - -## 1.6.1 - 2012-02-22 -* 1 bugfix: - * Fix StripeObject#inspect when ActiveSupport 3.0 is loaded - -## 1.6.0 - 2012-02-01 -* A whole bunch of releases between 1.5.0 and 1.6.0, but few changes, mainly the addition of plans, coupons, events, and tokens -* 1.6.0 also contains a new inspect/to_string implementation - -## 1.5.0 - 2011-05-09 -* 1 major enhancement: - * Update for new RESTful API - -## 1.3.4 - 2011-01-07 -* 1 major enhancement: - * Rename to Stripe - -## 1.2 - 2010-06-06 -* 1 major enhancement: - * Support for the set_customer_subscription and delete_customer API methods - -## 1.1 - 2010-03-14 -* 1 major enhancement: - * Support for recurring billing - -## 1.0 - 2010-01-05 -* 1 major enhancement: - * Initial release - - + * This is not a breaking change, as this method was deprecated before the Tax Transactions API was released in favor of the `create_from_calculation` method. +* [#1201](https://github.com/stripe/stripe-ruby/pull/1201) Update save deprecation message + +## 8.4.0 - 2023-03-23 +* [#1197](https://github.com/stripe/stripe-ruby/pull/1197) Update generated code (new) + * Add support for new resources `Tax.CalculationLineItem`, `Tax.Calculation`, `Tax.TransactionLineItem`, and `Tax.Transaction` + * Add support for `create` and `list_line_items` methods on resource `Calculation` + * Add support for `create_from_calculation`, `create_reversal`, `create`, `list_line_items`, and `retrieve` methods on resource `Transaction` +* [#1152](https://github.com/stripe/stripe-ruby/pull/1152) Symbolize hash keys inside `convert_to_stripe_object_with_params` + +## 8.3.0 - 2023-02-16 +* [#1175](https://github.com/stripe/stripe-ruby/pull/1175) API Updates + * Add support for `refund_payment` method on resource `Terminal.Reader` + +## 8.2.0 - 2023-02-02 +* [#1173](https://github.com/stripe/stripe-ruby/pull/1173) API Updates + * Add support for `resume` method on resource `Subscription` +* [#1171](https://github.com/stripe/stripe-ruby/pull/1171) Remove unused `partial` param from `initialize_from` + +## 8.1.0 - 2023-01-12 +* [#1162](https://github.com/stripe/stripe-ruby/pull/1162) Improve request events instrumentation + +## 8.0.0 - 2022-11-16 +* [#1144](https://github.com/stripe/stripe-ruby/pull/1144) Next major release changes + +Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-11-15. + +"⚠️" symbol highlights breaking changes. + +### Deprecated +- The `save` method is deprecated. Prefer the static `update` method that doesn't require retrieval of the resource to update it. + ``` ruby + # before + refund = Stripe::Refund.retrieve("re_123") + refund.description = "Refund description" + refund.save + + # after + Stripe::Refund.update("re_123", description: "Refund description") + ``` + +### ⚠️ Removed +- Removed deprecated `Sku` resource. +- Removed deprecated `Orders` resource. +- Removed deprecated `delete` method on `Subscription` resource. Please use `cancel` method instead. + ```ruby + # before + Stripe::Subscription::delete("sub_12345") + + # after + Stripe::Subscription::cancel("sub_12345") + ``` + + +## 7.1.0 - 2022-08-19 +* [#1116](https://github.com/stripe/stripe-ruby/pull/1116) API Updates + * Add support for new resource `CustomerCashBalanceTransaction` +* [#1118](https://github.com/stripe/stripe-ruby/pull/1118) Update AllowedChars in rubocop config +* [#1117](https://github.com/stripe/stripe-ruby/pull/1117) Refresh rubocop config. +* [#1115](https://github.com/stripe/stripe-ruby/pull/1115) Add a support section to the readme + +## 7.0.0 - 2022-08-02 + +Breaking changes that arose during code generation of the library that we postponed for the next major version. For changes to the SDK, read more detailed description at https://github.com/stripe/stripe-ruby/wiki/Migration-guide-for-v7. For changes to the Stripe products, read more at https://stripe.com/docs/upgrades#2022-08-01. + +"⚠️" symbol highlights breaking changes. + +* [#1106](https://github.com/stripe/stripe-ruby/pull/1106) API Updates +* [#1092](https://github.com/stripe/stripe-ruby/pull/1092) API Updates +* [#1090](https://github.com/stripe/stripe-ruby/pull/1090) Use auto-generation for `Invoice` methods +* [#1103](https://github.com/stripe/stripe-ruby/pull/1103) Next major release changes + +### ⚠️ Changed +* `retrieve_cash_balance` and `update_cash_balance` methods on `Customer` resource no longer requires the second argument to always be `nil`. The methods now now take in `customer_id`, `params`, and `opts` parameters. +* Update default bundle of CA certificates to April 26, 2022. + +### Deprecated +* Deprecate `delete` method on `Subscription` resource. Please use `cancel` method instead. + +### ⚠️ Removed +* Remove `details` method from `Issuing.Card` resource. The method was not supported. +* Remove `Issuing.CardDetails` resource. Read more at https://stripe.com/docs/issuing/cards/virtual. +* Remove `create` method from `ReportType` resource. The method was not supported. +* Remove `usage_record_summaries` method from `SubscriptionItem` resource. Please use `list_usage_record_summaries` method instead. +* Remove `AlipayAccount`, `BitcoinReceiver`, `BitcoinTransaction`, `Issuing::CardDetails`, `Recipient`, ` RecipientTransfer`, and `ThreeDSecure` resources. The resources were deprecated or no longer in use. +* Remove ability to list `Card` resource for a `Recipient`. +* Remove `cancel` method from `Transfer` resource. The method was deprecated. + +## 6.5.0 - 2022-06-29 +* [#1084](https://github.com/stripe/stripe-ruby/pull/1084) API Updates + * Add support for `deliver_card`, `fail_card`, `return_card`, and `ship_card` test helper methods on resource `Issuing.Card` +* [#1076](https://github.com/stripe/stripe-ruby/pull/1076) fix: Update logging to coerce ASCII-8BIT into UTF-8. + +## 6.4.0 - 2022-06-17 +* [#1073](https://github.com/stripe/stripe-ruby/pull/1073) API Updates + * Add support for `fund_cash_balance` test helper method on resource `Customer` +* [#1074](https://github.com/stripe/stripe-ruby/pull/1074) Support updating pre-release versions +* [#1072](https://github.com/stripe/stripe-ruby/pull/1072) Trigger workflows on beta branches +* [#1071](https://github.com/stripe/stripe-ruby/pull/1071) Use request_stripe_object for all requests +* [#1070](https://github.com/stripe/stripe-ruby/pull/1070) API Updates + + Switch from using meta-programing to generating explicit methods for custom methods. +* [#1069](https://github.com/stripe/stripe-ruby/pull/1069) chore: Stop special implementation of Account.persons method. + +## 6.3.0 - 2022-06-08 +* [#1063](https://github.com/stripe/stripe-ruby/pull/1063) fix: Update cash balance methods to no longer require nested ID. + +## 6.2.0 - 2022-05-23 +* [#1060](https://github.com/stripe/stripe-ruby/pull/1060) API Updates + * Add support for new resource `Apps.Secret` + +## 6.1.0 - 2022-05-19 +* [#1057](https://github.com/stripe/stripe-ruby/pull/1057) API Updates + * Add support for new resources `Treasury.CreditReversal`, `Treasury.DebitReversal`, `Treasury.FinancialAccountFeatures`, `Treasury.FinancialAccount`, `Treasury.FlowDetails`, `Treasury.InboundTransfer`, `Treasury.OutboundPayment`, `Treasury.OutboundTransfer`, `Treasury.ReceivedCredit`, `Treasury.ReceivedDebit`, `Treasury.TransactionEntry`, and `Treasury.Transaction` + * Add support for `retrieve_payment_method` method on resource `Customer` + * Add support for `list_owners` and `list` methods on resource `FinancialConnections.Account` + + + +## 6.0.0 - 2022-05-09 +* [#1056](https://github.com/stripe/stripe-ruby/pull/1056) API Updates + Major version release. The [migration guide](https://github.com/stripe/stripe-ruby/wiki/Migration-Guide-for-v6) contains more information. + + (⚠️ = breaking changes): + * ⚠️ Replace the legacy `Order` API with the new `Order` API. + * New methods: `cancel`, `list_line_items`, `reopen`, and `submit` + * Removed methods: `pay` and `return_order` + * Removed resources: `OrderItem` and `OrderReturn` + * ⚠️ Rename `FinancialConnections::Account.refresh` to `FinancialConnections::Account.refresh_account + +## 5.55.0 - 2022-05-05 +* [#1055](https://github.com/stripe/stripe-ruby/pull/1055) API Updates + * Add support for new resources `FinancialConnections.AccountOwner`, `FinancialConnections.AccountOwnership`, `FinancialConnections.Account`, and `FinancialConnections.Session` + + +## 5.54.0 - 2022-05-03 +* [#1053](https://github.com/stripe/stripe-ruby/pull/1053) API Updates + * Add support for new resource `CashBalance` + +## 5.53.0 - 2022-04-21 +* [#1050](https://github.com/stripe/stripe-ruby/pull/1050) API Updates + * Add support for `expire` test helper method on resource `Refund` + +## 5.52.0 - 2022-04-18 +* [#1046](https://github.com/stripe/stripe-ruby/pull/1046) [#1047](https://github.com/stripe/stripe-ruby/pull/1047) API Updates + * Add support for new resources `FundingInstructions` and `Terminal.Configuration` + +## 5.51.0 - 2022-04-15 +* [#1046](https://github.com/stripe/stripe-ruby/pull/1046) This release was incomplete and was yanked from RubyGems immediately after it was published. + +## 5.50.0 - 2022-04-13 +* [#1045](https://github.com/stripe/stripe-ruby/pull/1045) API Updates + * Add support for `increment_authorization` method on resource `PaymentIntent` + +## 5.49.0 - 2022-04-08 +* [#1043](https://github.com/stripe/stripe-ruby/pull/1043) API Updates + * Add support for `apply_customer_balance` method on resource `PaymentIntent` + +## 5.48.0 - 2022-03-30 +* [#1041](https://github.com/stripe/stripe-ruby/pull/1041) API Updates + * Add support for `cancel_action`, `process_payment_intent`, `process_setup_intent`, and `set_reader_display` methods on resource `Terminal.Reader` + +## 5.47.0 - 2022-03-29 +* [#1040](https://github.com/stripe/stripe-ruby/pull/1040) API Updates + * Add support for Search API + * Add support for `search` method on resources `Charge`, `Customer`, `Invoice`, `PaymentIntent`, `Price`, `Product`, and `Subscription` + +* [#1034](https://github.com/stripe/stripe-ruby/pull/1034) Add supporting classes for test helper generation + +## 5.46.0 - 2022-03-23 +* [#1039](https://github.com/stripe/stripe-ruby/pull/1039) API Updates + * Add support for `cancel` method on resource `Refund` +* [#992](https://github.com/stripe/stripe-ruby/pull/992) Add support for Search API + +## 5.45.0 - 2022-03-01 +* [#1035](https://github.com/stripe/stripe-ruby/pull/1035) API Updates + * Add support for new resource `TestHelpers.TestClock` + +## 5.44.0 - 2022-02-16 +* [#1032](https://github.com/stripe/stripe-ruby/pull/1032) API Updates + * Add support for `verify_microdeposits` method on resources `PaymentIntent` and `SetupIntent` + +## 5.43.0 - 2022-01-20 +* [#1031](https://github.com/stripe/stripe-ruby/pull/1031) API Updates + * Add support for new resource `PaymentLink` + +## 5.42.0 - 2021-12-13 +* [#1022](https://github.com/stripe/stripe-ruby/pull/1022) Add connection manager logging and include object IDs in logging. + +## 5.41.0 - 2021-11-16 +* [#1017](https://github.com/stripe/stripe-ruby/pull/1017) API Updates + * Add support for new resource `ShippingRate` + +## 5.40.0 - 2021-11-11 +* [#1015](https://github.com/stripe/stripe-ruby/pull/1015) API Updates + * Add support for `expire` method on resource `Checkout.Session` +* [#1013](https://github.com/stripe/stripe-ruby/pull/1013) Add tests for child resources. +* [#1012](https://github.com/stripe/stripe-ruby/pull/1012) Add tests for namespaced resources. +* [#1011](https://github.com/stripe/stripe-ruby/pull/1011) codegen: 3 more files + +## 5.39.0 - 2021-10-11 +* [#1010](https://github.com/stripe/stripe-ruby/pull/1010) API Updates + * Add support for `list_payment_methods` method on resource `Customer` + +## 5.38.0 - 2021-08-10 +* [#993](https://github.com/stripe/stripe-ruby/pull/993) Add `request_id` to RequestEndEvent +* [#991](https://github.com/stripe/stripe-ruby/pull/991) Codegen more files +* [#989](https://github.com/stripe/stripe-ruby/pull/989) Remove unused API error types from docs. + +## 5.37.0 - 2021-07-14 +* [#988](https://github.com/stripe/stripe-ruby/pull/988) API Updates + * Add support for `list_computed_upfront_line_items` method on resource `Quote` + +## 5.36.0 - 2021-07-09 +* [#987](https://github.com/stripe/stripe-ruby/pull/987) Add support for `Quote` API + +## 5.35.0 - 2021-06-30 +* [#985](https://github.com/stripe/stripe-ruby/pull/985) Update normalize_opts to use dup instead of clone. +* [#982](https://github.com/stripe/stripe-ruby/pull/982) Deprecate travis +* [#983](https://github.com/stripe/stripe-ruby/pull/983) Add support for making a request and receiving the response as a stream. + +## 5.34.0 - 2021-06-04 +* [#981](https://github.com/stripe/stripe-ruby/pull/981) API Updates + * Add support for `TaxCode` API. + +## 5.33.0 - 2021-05-19 +* [#979](https://github.com/stripe/stripe-ruby/pull/979) Add support for the Identify VerificationSession and VerificationReport APIs + +## 5.32.1 - 2021-04-05 +* Correct use of regexp `match` in gemspec for old versions of Ruby + +## 5.32.0 - 2021-04-05 +* [#973](https://github.com/stripe/stripe-ruby/pull/973) Reduce packed gem size + +## 5.31.0 - 2021-04-02 +* [#968](https://github.com/stripe/stripe-ruby/pull/968) Allow StripeClient to be configured per instance +* [#971](https://github.com/stripe/stripe-ruby/pull/971) On config change, only clear connection managers for changed config +* [#972](https://github.com/stripe/stripe-ruby/pull/972) Rename `Stripe.configuration` to `Stripe.config` +* [#970](https://github.com/stripe/stripe-ruby/pull/970) Reserve some critical field names when adding `StripeObject` accessors +* [#967](https://github.com/stripe/stripe-ruby/pull/967) CI: github actions + +## 5.30.0 - 2021-02-22 +* [#965](https://github.com/stripe/stripe-ruby/pull/965) Add support for the Billing Portal Configuration API + +## 5.29.1 - 2021-02-09 +* [#964](https://github.com/stripe/stripe-ruby/pull/964) Fix return value of `Customer#delete_discount` + +## 5.29.0 - 2021-01-05 +* [#952](https://github.com/stripe/stripe-ruby/pull/952) Allow client_id configuration on instance config + +## 5.28.0 - 2020-10-14 +* [#950](https://github.com/stripe/stripe-ruby/pull/950) Add configuration option for `write_timeout` for connections on Ruby 2.6+ + +## 5.27.0 - 2020-10-14 +* [#951](https://github.com/stripe/stripe-ruby/pull/951) Add support for the Payout Reverse API + +## 5.26.0 - 2020-09-29 +* [#949](https://github.com/stripe/stripe-ruby/pull/949) Add support for the `SetupAttempt` resource and List API + +## 5.25.0 - 2020-09-02 +* [#944](https://github.com/stripe/stripe-ruby/pull/944) Add support for the Issuing Dispute Submit API + +## 5.24.0 - 2020-08-26 +* [#939](https://github.com/stripe/stripe-ruby/pull/939) Extract configurations into separate object +* [#940](https://github.com/stripe/stripe-ruby/pull/940) Fix typo in documentation of `stripe_object.rb` + +## 5.23.1 - 2020-08-05 +* [#936](https://github.com/stripe/stripe-ruby/pull/936) Rename API resource's `request` method + +## 5.23.0 - 2020-08-05 +* [#937](https://github.com/stripe/stripe-ruby/pull/937) Add support for the `PromotionCode` resource and APIs + +## 5.22.0 - 2020-05-11 +* [#918](https://github.com/stripe/stripe-ruby/pull/918) Add support for the `LineItem` resource and APIs + +## 5.21.0 - 2020-04-29 +* [#917](https://github.com/stripe/stripe-ruby/pull/917) Add support for the `Price` resource and APIs + +## 5.20.0 - 2020-04-27 +* [#916](https://github.com/stripe/stripe-ruby/pull/916) Add new `.generate_header` method for webhooks + +## 5.19.0 - 2020-04-24 +* [#915](https://github.com/stripe/stripe-ruby/pull/915) Expose `Stripe::Webhook.compute_signature` publicly + +## 5.18.0 - 2020-04-22 +* [#911](https://github.com/stripe/stripe-ruby/pull/911) Add support for `BillingPortal` namespace and `Session` resource and APIs + +## 5.17.0 - 2020-02-26 +* [#907](https://github.com/stripe/stripe-ruby/pull/907) Add `StripeError#idempotent_replayed?` + +## 5.16.0 - 2020-02-26 +* [#906](https://github.com/stripe/stripe-ruby/pull/906) Add support for listing Checkout sessions +* [#903](https://github.com/stripe/stripe-ruby/pull/903) Upgrade to Rubocop 0.80 + +## 5.15.0 - 2020-02-10 +* [#902](https://github.com/stripe/stripe-ruby/pull/902) Add `request_begin` instrumentation callback + +## 5.14.0 - 2020-01-14 +* [#896](https://github.com/stripe/stripe-ruby/pull/896) Add support for `CreditNoteLineItem` +* [#894](https://github.com/stripe/stripe-ruby/pull/894) Clean up test output by capturing `$stderr` when we expect warnings +* [#892](https://github.com/stripe/stripe-ruby/pull/892) Explicitly pass a parameter as hash to be more ruby 2.7 friendly +* [#893](https://github.com/stripe/stripe-ruby/pull/893) Upgrade Rubocop to 0.79 + +## 5.13.0 - 2020-01-08 +* [#891](https://github.com/stripe/stripe-ruby/pull/891) Fix most Ruby 2.7 warnings + +## 5.12.1 - 2020-01-06 +* [#890](https://github.com/stripe/stripe-ruby/pull/890) Override API key with `client_secret` in `OAuth.token` + +## 5.12.0 - 2020-01-02 +* [#889](https://github.com/stripe/stripe-ruby/pull/889) Add support for retrieve source transaction API method + +## 5.11.0 - 2019-11-26 +* [#885](https://github.com/stripe/stripe-ruby/pull/885) Add support for `CreditNote` preview + +## 5.10.0 - 2019-11-08 +* [#882](https://github.com/stripe/stripe-ruby/pull/882) Add list_usage_record_summaries and list_source_transactions + +## 5.9.0 - 2019-11-07 +* [#870](https://github.com/stripe/stripe-ruby/pull/870) Add request instrumentation callback (see `README.md` for usage example) + +## 5.8.0 - 2019-11-05 +* [#879](https://github.com/stripe/stripe-ruby/pull/879) Add support for `Mandate` +* [#876](https://github.com/stripe/stripe-ruby/pull/876) Add additional per-request configuration documentation +* [#874](https://github.com/stripe/stripe-ruby/pull/874) Raise an error when requests params are invalid +* [#873](https://github.com/stripe/stripe-ruby/pull/873) Contributor Covenant + +## 5.7.1 - 2019-10-15 +* [#869](https://github.com/stripe/stripe-ruby/pull/869) Fixes the misnamed `connection_base=` setter to be named `connect_base=` + +## 5.7.0 - 2019-10-10 +* [#865](https://github.com/stripe/stripe-ruby/pull/865) Support backwards pagination with list's `#auto_paging_each` + +## 5.6.0 - 2019-10-04 +* [#861](https://github.com/stripe/stripe-ruby/pull/861) Nicer error when specifying non-nil non-string opt value + +## 5.5.0 - 2019-10-03 +* [#859](https://github.com/stripe/stripe-ruby/pull/859) User-friendly messages and retries for `EOFError`, `Errno::ECONNRESET`, `Errno::ETIMEDOUT`, and `Errno::EHOSTUNREACH` network errors + +## 5.4.1 - 2019-10-01 +* [#858](https://github.com/stripe/stripe-ruby/pull/858) Drop Timecop dependency + +## 5.4.0 - 2019-10-01 +* [#857](https://github.com/stripe/stripe-ruby/pull/857) Move to monotonic time for duration calculations + +## 5.3.0 - 2019-10-01 +* [#853](https://github.com/stripe/stripe-ruby/pull/853) Support `Stripe-Should-Retry` header + +## 5.2.0 - 2019-09-19 +* [#851](https://github.com/stripe/stripe-ruby/pull/851) Introduce system for garbage collecting connection managers + +## 5.1.1 - 2019-09-04 +* [#845](https://github.com/stripe/stripe-ruby/pull/845) Transfer the request_id from the http_headers to error. + +## 5.1.0 - 2019-08-27 +* [#841](https://github.com/stripe/stripe-ruby/pull/841) Retry requests on a 429 that's a lock timeout + +## 5.0.1 - 2019-08-20 +* [#836](https://github.com/stripe/stripe-ruby/pull/836) Increase connection keep alive timeout to 30 seconds + +## 5.0.0 - 2019-08-20 +Major version release. The [migration guide](https://github.com/stripe/stripe-ruby/wiki/Migration-guide-for-v5) contains a detailed list of backwards-incompatible changes with upgrade instructions. + +Pull requests included in this release (cf. [#815](https://github.com/stripe/stripe-ruby/pull/815)) (⚠️ = breaking changes): +* ⚠️ [#813](https://github.com/stripe/stripe-ruby/pull/813): Convert library to use built-in `Net::HTTP` +* ⚠️ [#816](https://github.com/stripe/stripe-ruby/pull/816): Make `code` argument in `CardError` named instead of positional. +* ⚠️ [#817](https://github.com/stripe/stripe-ruby/pull/817): Drop support for very old Ruby versions. +* [#818](https://github.com/stripe/stripe-ruby/pull/818): Bump Rubocop to latest version +* [#819](https://github.com/stripe/stripe-ruby/pull/819): Ruby minimum version increase followup +* ⚠️ [#820](https://github.com/stripe/stripe-ruby/pull/820): Remove old deprecated methods +* ⚠️ [#823](https://github.com/stripe/stripe-ruby/pull/823): Remove all alias for list methods +* ⚠️ [#826](https://github.com/stripe/stripe-ruby/pull/826): Remove `UsageRecord.create` method +* ⚠️ [#827](https://github.com/stripe/stripe-ruby/pull/827): Remove `IssuerFraudRecord` +* [#811](https://github.com/stripe/stripe-ruby/pull/811): Add `ErrorObject` to `StripeError` exceptions +* [#828](https://github.com/stripe/stripe-ruby/pull/828): Tweak retry logic to be a little more like stripe-node +* [#829](https://github.com/stripe/stripe-ruby/pull/829): Reset connections when connection-changing configuration changes (optional) +* [#830](https://github.com/stripe/stripe-ruby/pull/830): Fix inverted sign for 500 retries +* ⚠️[#831](https://github.com/stripe/stripe-ruby/pull/831): Remove a few more very old deprecated methods +* [#832](https://github.com/stripe/stripe-ruby/pull/832): Minor cleanup in `StripeClient` +* [#833](https://github.com/stripe/stripe-ruby/pull/833): Do better bookkeeping when tracking state in `Thread.current` +* [#834](https://github.com/stripe/stripe-ruby/pull/834): Add `Invoice.list_upcoming_line_items` method + +## 4.24.0 - 2019-08-12 +* [#825](https://github.com/stripe/stripe-ruby/pull/825) Add `SubscriptionItem.create_usage_record` method + - This release also removed the `SubscriptionSchedule.revisions` method. This should have been included in the previous release (4.23.0) + +## 4.23.0 - 2019-08-09 +* [#824](https://github.com/stripe/stripe-ruby/pull/824) Remove SubscriptionScheduleRevision + - This is technically a breaking change. We've chosen to release it as a minor vesion bump because the associated API is unused. + +## 4.22.1 - 2019-08-09 +* [#808](https://github.com/stripe/stripe-ruby/pull/808) Unify request/response handling + +## 4.22.0 - 2019-07-30 +* [#821](https://github.com/stripe/stripe-ruby/pull/821) Listing `BalanceTransaction` objects now uses `/v1/balance_transactions` instead of `/v1/balance/history` + +## 4.21.3 - 2019-07-15 +* [#810](https://github.com/stripe/stripe-ruby/pull/810) Better error message when passing non-string to custom method + +## 4.21.2 - 2019-07-05 +* [#806](https://github.com/stripe/stripe-ruby/pull/806) Revert back to `initialize_from` from `Util.convert_to_stripe_object` + +## 4.21.1 - 2019-07-04 +* [#807](https://github.com/stripe/stripe-ruby/pull/807) Add gem metadata + +## 4.21.0 - 2019-06-28 +* [#803](https://github.com/stripe/stripe-ruby/pull/803) Add support for the `SetupIntent` resource and APIs + +## 4.20.1 - 2019-06-28 +* [#805](https://github.com/stripe/stripe-ruby/pull/805) Fix formatting in `ConnectionFailed` error message + +## 4.20.0 - 2019-06-24 +* [#800](https://github.com/stripe/stripe-ruby/pull/800) Enable request latency telemetry by default + +## 4.19.0 - 2019-06-17 +* [#770](https://github.com/stripe/stripe-ruby/pull/770) Add support for `CustomerBalanceTransaction` resource and APIs + +## 4.18.1 - 2019-05-27 +* [#789](https://github.com/stripe/stripe-ruby/pull/789) Allow `Order#pay` to be called without arguments + +## 4.18.0 - 2019-05-23 +* [#783](https://github.com/stripe/stripe-ruby/pull/783) Add support for `radar.early_fraud_warning` resource + +## 4.17.0 - 2019-05-14 +* [#779](https://github.com/stripe/stripe-ruby/pull/779) Add support for the Capability resource and APIs + +## 4.16.0 - 2019-04-24 +* [#760](https://github.com/stripe/stripe-ruby/pull/760) Add support for the `TaxRate` resource and APIs + +## 4.15.0 - 2019-04-22 +* [#762](https://github.com/stripe/stripe-ruby/pull/762) Add support for the `TaxId` resource and APIs + +## 4.14.0 - 2019-04-18 +* [#758](https://github.com/stripe/stripe-ruby/pull/758) Add support for the `CreditNote` resource and APIs + +## 4.13.0 - 2019-04-16 +* [#766](https://github.com/stripe/stripe-ruby/pull/766) Relax constraints on objects that we'll accept as a file (now they just need to respond to `#read`) + +## 4.12.0 - 2019-04-02 +* [#752](https://github.com/stripe/stripe-ruby/pull/752) Add `.delete` class method on deletable API resources +* [#754](https://github.com/stripe/stripe-ruby/pull/754) Add class methods for all custom API requests (e.g. `Charge.capture`) + +## 4.11.0 - 2019-03-26 +* [#753](https://github.com/stripe/stripe-ruby/pull/753) Add a global proxy configuration parameter + +## 4.10.0 - 2019-03-18 +* [#745](https://github.com/stripe/stripe-ruby/pull/745) Add support for the `PaymentMethod` resource and APIs +* [#747](https://github.com/stripe/stripe-ruby/pull/747) Add support for retrieving a Checkout `Session` +* [#748](https://github.com/stripe/stripe-ruby/pull/748) Add support for deleting a Terminal `Location` and `Reader` + +## 4.9.1 - 2019-03-18 +* [#750](https://github.com/stripe/stripe-ruby/pull/750) Catch error and warn if unable to remove a method + +## 4.9.0 - 2019-02-12 +* [#739](https://github.com/stripe/stripe-ruby/pull/739) Add support for `SubscriptionSchedule` and `SubscriptionScheduleRevision` + +## 4.8.1 - 2019-02-11 +* [#743](https://github.com/stripe/stripe-ruby/pull/743) Fix bug in file uploading introduced in #741 + +## 4.8.0 - 2019-02-03 +* [#741](https://github.com/stripe/stripe-ruby/pull/741) Use `FaradayStripeEncoder` to encode all parameter styles + +## 4.7.1 - 2019-02-01 +* [#740](https://github.com/stripe/stripe-ruby/pull/740) Fix query encoding for integer-indexed maps + +## 4.7.0 - 2019-01-23 +* [#735](https://github.com/stripe/stripe-ruby/pull/735) Rename `CheckoutSession` to `Session` and move it under the `Checkout` namespace. This is a breaking change, but we've reached out to affected merchants and all new merchants would use the new approach. + +## 4.6.0 - 2019-01-21 +* [#736](https://github.com/stripe/stripe-ruby/pull/736) Properly serialize `individual` on `Account` objects + +## 4.5.0 - 2019-01-02 +* [#719](https://github.com/stripe/stripe-ruby/pull/719) Generate OAuth authorize URLs for Express accounts as well as standard + +## 4.4.1 - 2018-12-31 +* [#718](https://github.com/stripe/stripe-ruby/pull/718) Fix an error message typo + +## 4.4.0 - 2018-12-21 +* [#716](https://github.com/stripe/stripe-ruby/pull/716) Add support for the `CheckoutSession` resource + +## 4.3.0 - 2018-12-10 +* [#711](https://github.com/stripe/stripe-ruby/pull/711) Add support for account links + +## 4.2.0 - 2018-11-28 +* [#705](https://github.com/stripe/stripe-ruby/pull/705) Add support for the `Review` APIs + +## 4.1.0 - 2018-11-27 +* [#695](https://github.com/stripe/stripe-ruby/pull/695) Add support for `ValueList` and `ValueListItem` for Radar + +## 4.0.3 - 2018-11-19 +* [#703](https://github.com/stripe/stripe-ruby/pull/703) Don't use `Net::HTTP::Persistent` on Windows where it's not well supported + +## 4.0.2 - 2018-11-16 +* [#701](https://github.com/stripe/stripe-ruby/pull/701) Require minimum Faraday 0.13 for proper support of persistent connections + +## 4.0.1 - 2018-11-15 +* [#699](https://github.com/stripe/stripe-ruby/pull/699) Only send telemetry if `Request-Id` was present in the response + +## 4.0.0 - 2018-11-15 +* [#698](https://github.com/stripe/stripe-ruby/pull/698) Use persistent connections by default through `Net::HTTP::Persistent` +* [#698](https://github.com/stripe/stripe-ruby/pull/698) Drop support for Ruby 2.0 (which we consider a breaking change here) + +## 3.31.1 - 2018-11-12 +* [#697](https://github.com/stripe/stripe-ruby/pull/697) Send telemetry in milliseconds specifically + +## 3.31.0 - 2018-11-12 +* [#696](https://github.com/stripe/stripe-ruby/pull/696) Add configurable telemetry to gather information on client-side request latency + +## 3.30.0 - 2018-11-08 +* [#693](https://github.com/stripe/stripe-ruby/pull/693) Add new API endpoints for the `Invoice` resource. + +## 3.29.0 - 2018-10-30 +* [#692](https://github.com/stripe/stripe-ruby/pull/692) Add support for the `Person` resource +* [#694](https://github.com/stripe/stripe-ruby/pull/694) Add support for the `WebhookEndpoint` resource + +## 3.28.0 - 2018-09-24 +* [#690](https://github.com/stripe/stripe-ruby/pull/690) Add support for Stripe Terminal + +## 3.27.0 - 2018-09-24 +* [#689](https://github.com/stripe/stripe-ruby/pull/689) Rename `FileUpload` to `File` + +## 3.26.1 - 2018-09-14 +* [#688](https://github.com/stripe/stripe-ruby/pull/688) Fix hash equality on `StripeObject` + +## 3.26.0 - 2018-09-05 +* [#681](https://github.com/stripe/stripe-ruby/pull/681) Add support for reporting resources + +## 3.25.0 - 2018-08-28 +* [#678](https://github.com/stripe/stripe-ruby/pull/678) Allow payment intent `#cancel`, `#capture`, and `#confirm` to take their own parameters + +## 3.24.0 - 2018-08-27 +* [#675](https://github.com/stripe/stripe-ruby/pull/675) Remove support for `BitcoinReceiver` write-actions + +## 3.23.0 - 2018-08-23 +* [#676](https://github.com/stripe/stripe-ruby/pull/676) Add support for usage record summaries + +## 3.22.0 - 2018-08-15 +* [#674](https://github.com/stripe/stripe-ruby/pull/674) Use integer-indexed encoding for all arrays + +## 3.21.0 - 2018-08-03 +* [#671](https://github.com/stripe/stripe-ruby/pull/671) Add cancel support for topups + +## 3.20.0 - 2018-08-03 +* [#669](https://github.com/stripe/stripe-ruby/pull/669) Add support for file links + +## 3.19.0 - 2018-07-27 +* [#666](https://github.com/stripe/stripe-ruby/pull/666) Add support for scheduled query runs (`Stripe::Sigma::ScheduledQueryRun`) for Sigma + +## 3.18.0 - 2018-07-26 +* [#665](https://github.com/stripe/stripe-ruby/pull/665) Add support for Stripe Issuing + +## 3.17.2 - 2018-07-19 +* [#664](https://github.com/stripe/stripe-ruby/pull/664) Don't colorize log output being sent to a configured logger + +## 3.17.1 - 2018-07-19 +* [#663](https://github.com/stripe/stripe-ruby/pull/663) Internal improvements to `ApiResource.class_url` + +## 3.17.0 - 2018-06-28 +* [#658](https://github.com/stripe/stripe-ruby/pull/658) Add support for `partner_id` from `Stripe.set_app_info` + +## 3.16.0 - 2018-06-28 +* [#657](https://github.com/stripe/stripe-ruby/pull/657) Add support for payment intents + +## 3.15.0 - 2018-05-10 +* [#649](https://github.com/stripe/stripe-ruby/pull/649) Freeze all string literals + +## 3.14.0 - 2018-05-09 +* [#645](https://github.com/stripe/stripe-ruby/pull/645) Add support for issuer fraud records + +## 3.13.1 - 2018-05-07 +* [#647](https://github.com/stripe/stripe-ruby/pull/647) Merge query parameters coming from path with `params` argument + +## 3.13.0 - 2018-04-11 +* [#498](https://github.com/stripe/stripe-ruby/pull/498) Add support for flexible billing primitives + +## 3.12.1 - 2018-04-05 +* [#636](https://github.com/stripe/stripe-ruby/pull/636) Fix a warning for uninitialized instance variable `@additive_params` + +## 3.12.0 - 2018-04-05 +* [#632](https://github.com/stripe/stripe-ruby/pull/632) Introduce `additive_object_param` so that non-`metadata` subobjects don't zero their keys as they're being replaced + +## 3.11.0 - 2018-02-26 +* [#628](https://github.com/stripe/stripe-ruby/pull/628) Add support for `code` attribute on all Stripe exceptions + +## 3.10.0 - 2018-02-21 +* [#627](https://github.com/stripe/stripe-ruby/pull/627) Add support for topups + +## 3.9.2 - 2018-02-12 +* [#625](https://github.com/stripe/stripe-ruby/pull/625) Skip calling `to_hash` for `nil` + +## 3.9.1 - 2017-12-15 +* [#616](https://github.com/stripe/stripe-ruby/pull/616) Support all file-like objects for uploads with duck typed checks on `path` and `read` (we previously whitelisted only certain classes) + +## 3.9.0 - 2017-12-08 +* [#613](https://github.com/stripe/stripe-ruby/pull/613) Introduce new `IdempotencyError` type for idempotency-specific failures + +## 3.8.2 - 2017-12-07 +* [#612](https://github.com/stripe/stripe-ruby/pull/612) Fix integer-indexed array encoding when sent as query parameter (subscription items can now be used when fetching an upcoming invoice) + +## 3.8.1 - 2017-12-06 +* [#611](https://github.com/stripe/stripe-ruby/pull/611) Support `Tempfile` (as well as `File`) in file uploads + +## 3.8.0 - 2017-10-31 +* [#606](https://github.com/stripe/stripe-ruby/pull/606) Support for exchange rates APIs + +## 3.7.0 - 2017-10-26 +* [#603](https://github.com/stripe/stripe-ruby/pull/603) Support for listing source transactions + +## 3.6.0 - 2017-10-17 +* [#597](https://github.com/stripe/stripe-ruby/pull/597) Add static methods to manipulate resources from parent + * `Account` gains methods for external accounts and login links (e.g. `.create_account`, `create_login_link`) + * `ApplicationFee` gains methods for refunds + * `Customer` gains methods for sources + * `Transfer` gains methods for reversals + +## 3.5.3 - 2017-10-16 +* [#594](https://github.com/stripe/stripe-ruby/pull/594) Make sure that `StripeObject`'s `#deep_copy` maintains original class +* [#595](https://github.com/stripe/stripe-ruby/pull/595) Allow `Object#method` to be called on `StripeObject` even if it conflicts with an accessor +* [#596](https://github.com/stripe/stripe-ruby/pull/596) Encode arrays as integer-indexed hashes where appropriate +* [#598](https://github.com/stripe/stripe-ruby/pull/598) Don't persist `idempotency_key` opt between requests + +## 3.5.2 - 2017-10-13 +* [#592](https://github.com/stripe/stripe-ruby/pull/592) Bring back `Marshal.dump/load` support with custom marshal encoder/decoder + +## 3.5.1 - 2017-10-12 +* [#591](https://github.com/stripe/stripe-ruby/pull/591) Use thread-local `StripeClient` instances for thread safety + +## 3.5.0 - 2017-10-11 +* [#589](https://github.com/stripe/stripe-ruby/pull/589) Rename source `delete` to `detach` (and deprecate the former) + +## 3.4.1 - 2017-10-05 +* [#586](https://github.com/stripe/stripe-ruby/pull/586) Log query strings as well as form bodies with STRIPE_LOG +* [#588](https://github.com/stripe/stripe-ruby/pull/588) Require minimum Faraday 0.10 for bug fix in parameter encoding + +## 3.4.0 - 2017-09-20 +* Mark legacy Bitcoin API as deprecated, and remove corresponding tests +* Mark recipients API as deprecated, and remove recipient card tests + +## 3.3.2 - 2017-09-20 +* Correct minimum required Ruby version in gemspec (it's 2.0.0) + +## 3.3.1 - 2017-08-18 +* Only parse webhook payload after verification to decrease likelihood of + attack + +## 3.3.0 - 2017-08-11 +* Add support for standard library logger interface with `Stripe.logger` +* Error logs now go to stderr if using `Stripe.log_level`/`STRIPE_LOG` +* `Stripe.log_level`/`STRIPE_LOG` now support `Stipe::LEVEL_ERROR` + +## 3.2.0 - 2017-08-03 +* Add logging for request retry account and `Stripe-Account` header + +## 3.1.0 - 2017-08-03 +* Implement request logging with `Stripe.log_level` and `STRIPE_LOG` + +## 3.0.3 - 2017-07-28 +* Revert `nil` to empty string coercion from 3.0.2 +* Handle `invalid_client` OAuth error code +* Improve safety of error handling logic safer for unrecognized OAuth error codes + +## 3.0.2 - 2017-07-12 +**Important:** This version is non-functional and has been yanked in favor of 3.0.3. +* Convert `nil` to empty string when serializing parameters (instead of opaquely dropping it) -- NOTE: this change has since been reverted + +## 3.0.1 - 2017-07-11 +* Properties set with an API resource will now serialize that resource's ID if possible +* API resources will throw an ArgumentError on save if a property has been with an API resource that cannot be serialized + +## 3.0.0 - 2017-06-27 +* `#pay` on invoice now takes params as well as opts + +## 2.12.0 - 2017-06-20 +* Add support for ephemeral keys + +## 2.11.0 - 2017-05-26 +* Warn when keys that look like opts are included as parameters + +## 2.10.0 - 2017-05-25 +* Add support for account login links + +## 2.9.0 - 2017-05-18 +* Support for OAuth operations in `Stripe::OAuth` + +## 2.8.0 - 2017-04-28 +* Support for checking webhook signatures + +## 2.7.0 - 2017-04-26 +* Add model `InvoiceLineItem` + +## 2.6.0 - 2017-04-26 +* Add `OBJECT_NAME` constants to all API resources + +## 2.5.0 - 2017-04-24 +* Make `opts` argument in `Util.convert_to_stripe_object` optional + +## 2.4.0 - 2017-04-18 +* Add `Stripe.set_app_info` for use by plugin creators + +## 2.3.0 - 2017-04-14 +* Add question mark accessor when assigning boolean value to undefined field + +## 2.2.1 - 2017-04-07 +* Declare minimum required Faraday as 0.9 + +## 2.2.0 - 2017-04-06 +* Add support for payouts and recipient transfers + +## 2.1.0 - 2017-03-17 +* Support for detaching sources from customers + +## 2.0.3 - 2017-03-16 +* Fix marshalling of `StripeObjects` that have an embedded client + +## 2.0.2 - 2017-03-16 +* Fix bad field reference when recovering from a JSON parsing problem + +## 2.0.1 - 2017-02-22 +* Fix multipart parameter encoding to repair broken file uploads + +## 2.0.0 - 2017-02-14 +* Drop support for Ruby 1.9 +* Allow HTTP client that makes Stripe calls to be configured via Faraday +* Drop RestClient +* Switch to OpenAPI 2.0 spec and generated fixtures in test suite +* Switch to Webmock in test suite + +## 1.58.0 - 2017-01-19 +* Remove erroneously added list methods for `Source` model + +## 1.57.1 - 2016-11-28 +* Disallow sending protected fields along with API resource `.update` + +## 1.57.0 - 2016-11-21 +* Add retrieve method for 3-D Secure resources + +## 1.56.2 - 2016-11-17 +* Improve `StripeObject`'s `#to_s` to better handle how embedded objects are displayed + +## 1.56.1 - 2016-11-09 +* Fix (fairly serious) memory like in `StripeObject` + +## 1.56.0 - 2016-10-24 +* Add accessors for new fields added in `#update_attributes` +* Handle multi-plan subscriptions through new subscription items +* Handle 403 status codes from the API + +## 1.55.1 - 2016-10-24 +Identical to 1.56.0 above. I incorrectly cut a patch-level release. + +## 1.55.0 - 2016-09-15 +* Add support for Apple Pay domains + +## 1.54.0 - 2016-09-01 +* Whitelist errors that should be retried; scope to known socket and HTTP errors + +## 1.53.0 - 2016-08-31 +* Relax version constraint on rest-client (and by extension mime-types) for users on Ruby 2+ + +## 1.52.0 - 2016-08-30 +* Make sure `Subscription`'s `source` is saved with its parent + +## 1.51.1 - 2016-08-30 +* Make sure `Account`'s `external_account` is saved with its parent + +## 1.51.0 - 2016-08-26 +* Error when an array of maps is detected that cannot be accurately encoded +* Start using strings for header names instead of symbols for better clarity + +## 1.50.1 - 2016-08-25 +* Fix encoding of arrays of maps where maps unequal sets of keys + +## 1.50.0 - 2016-08-15 +* Allow sources to be created + +## 1.49.0 - 2016-07-28 +* Add top-level `Source` model + +## 1.48.0 - 2016-07-12 +* Add `ThreeDSecure` model for 3-D secure payments + +## 1.47.0 - 2016-07-11 +* Allow rest-client version 2.0+ to be used with the gem + +## 1.46.0 - 2016-07-07 +* Allow retry when a 409 conflict is encountered + +## 1.45.0 - 2016-07-07 +* Do not send subresources when updating except when explicitly told to do so (see #433) + +## 1.44.0 - 2016-06-29 +* Add `update` class method to all resources that can be updated + +## 1.43.1 - 2016-06-17 +* Fix type of resource returned from `Order#return_order` + +## 1.43.0 - 2016-05-20 +* Allow Relay orders to be returned and add associated types +* Support Alipay account retrieval and deletion + +## 1.42.0 - 2016-05-04 +* Add support for the new /v1/subscriptions endpoint (retrieve, list, create, update, and delete) + +## 1.41.0 - 2016-04-13 +* Add global `stripe_account` option that adds a `Stripe-Account` header to all requests + +## 1.40.0 - 2016-04-06 +* Fix bug that omitted subresources from serialization + +## 1.39.0 - 2016-03-31 +* Update CA cert bundle for compatibility with OpenSSL versions below 1.0.1 + +## 1.38.0 - 2016-03-18 +* Allow `opts` to be passed to an API resource's `#save` method + +## 1.37.0 - 2016-03-14 +* Add `Account#reject` to support the new API feature + +## 1.36.2 - 2016-03-14 +* Fix reference to non-existent `#url` in `ListObject` + +## 1.36.1 - 2016-03-04 +* Fix serialization when subhash given to `#save` or `#update_attributes` + +## 1.36.0 - 2016-02-08 +* Add `CountrySpec` model for looking up country payment information + +## 1.35.1 - 2016-02-03 +* Add compatibility layer for old API versions on `Charge#refund` + +## 1.35.0 - 2016-02-01 +* Allow CA cert bundle location to be configured +* Updated bundled CA certs + +## 1.34.0 - 2016-01-25 +* Add support for deleting products and SKUs + +## 1.33.1 - 2016-01-21 +* Pass through arguments of `Charge#refund` + +## 1.33.0 - 2016-01-19 +* Re-implement `Charge#refund` helper to use the modern endpoint suggested by docs + +## 1.32.1 - 2016-01-07 +* Fix bug where ivar left uninitialized in StripeObject could error on serialization +* Fix bug where a nil customer from API could error Bitcoin model on refresh + +## 1.32.0 - 2016-01-05 +* Add configuration to optionally retry network failures +* Use modern API endpoint for producing application fee refunds + +## 1.31.0 - 2015-10-29 +* Add BankAccount#verify convenience method + +## 1.30.3 - 2015-10-28 +* Fix bug where arrays that were not `additional_owners` were not properly encoded for requests + +## 1.30.2 - 2015-10-12 +* Fix bug where `opts` didn't properly propagate to descendant `StripeObjects` + +## 1.30.1 - 2015-10-10 +* Fix bug that prevent lists of hashes from being URI-encoded properly +* Fix bug where filter conditions were not making it past the first instantiated `ListObject` + +## 1.30.0 - 2015-10-09 +* Add `StripeObject#deleted?` for a reliable way to check whether an object is alive +* Deprecate `StripeObject#refresh_from` +* New parameter encoding scheme that doesn't use `URI.escape` + +## 1.29.1 - 2015-10-06 +* Fix bug where ampersands were not being properly encoded + +## 1.29.0 - 2015-10-05 +* Add pagination helpers `#auto_paging_each`, `#previous_page`, and `#next_page` + +## 1.28.1 - 2015-10-05 +* Fix URI being referenced by file upload resources + +## 1.28.0 - 2015-10-05 +* Make StripeObject's #save "upsert"-like; creates an object if new +* Add #update_attributes to StripeObject for safe mass assignment +* Properly mass assign attributes on calls to #save +* Add question mark helpers for boolean fields (e.g. #paid? as well as old #paid) +* Fix a bug that broke the API for StripeObject initialization +* Remove use of deprecated URI.escape + +## 1.27.2 - 2015-09-25 +* Correct the URLs used to fetch Bitcoin transactions. + +## 1.27.1 - 2015-09-20 +* Use hash rockets for backwards compatibility. + +## 1.27.0 - 2015-09-14 +* Add Orders, Products, and SKUs for Relay + +## 1.26.0 - 2015-09-11 +* Add support for 429 Rate Limited response + +## 1.25.0 - 2015-08-17 +* Added support for refund listing and retrieval without an associated charge + +## 1.24.0 - 2015-08-03 +* Added support for deleting managed accounts +* Added support for dispute listing and retrieval +* Bugfix: token objects now are the correct class + +## 1.23.0 - 2015-07-06 +* Added request IDs and HTTP headers to errors + +## 1.22.0 - 2015-06-10 +* Added support for bank accounts and debit cards in managed accounts (via the `external_accounts` param) + +## 1.21.0 - 2015-04-14 +* Remove TLS cert revocation check (all pre-heartbleed certs have expired) +* Bugfix: don't unset keys when they don't exist on StripeObject + +## 1.20.4 - 2015-03-26 +* Raise an error when explicitly passing nil as the API key on resource methods +* Fix error when passing an API key to Balance.retrieve (github issue #232) + +## 1.20.3 - 2015-03-13 +* Fixed error when updating certain resources (github issue #224) + +## 1.20.2 - 2015-03-10 +* Added support for updating nested hashes besides `metadata` (which was already supported) +* Fixed bug in balance retrieval + +## 1.20.1 - 2015-02-26 +* Updated Card to point to customer sources endpoint when customer property is set + +## 1.20.0 - 2015-02-19 +* Added Update & Delete operations to Bitcoin Receivers + +## 1.19.1 - 2015-02-18 +* Fixed fetching upcoming invoice/paying invoice methods + +## 1.19.0 - 2015-02-15 +* Support for new Transfers /reversals endpoint +* Account retrieval now optionally accepts an account ID +* Better support for passing custom headers, like Stripe-Account, through requests + +## 1.18.0 - 2015-01-21 +* 1 major enhancement: + * Added support for making bitcoin charges through BitcoinReceiver source object + +## 1.17.3 - 2015-01-12 +* 1 bugfix: + * Fixed API key propagation for ApplicationFee#refund + +## 1.17.2 - 2015-01-08 +* 1 bugfix: + * Fixed API key propagation for child resources + +## 1.17.1 - 2015-01-07 +* 2 minor enhacements: + * Fixed dependencies for Ruby versions less than 1.9.3 + * Added deauthorize method to Account object + +## 1.17.0 - 2014-12-15 +* 1 major enhacement: + * File uploads resource was added (for uploading pdf or image documents for disputes) + +## 1.16.1 - 2014-12-19 +* 2 minor enhancements: + * Ability to send idempotent requests + * Ability to specify stripe account as a header + +## 1.16.0 - 2014-10-08 +* 1 minor enhacement: + * Coupons now support update operations - useful for manipulating metadata + +## 1.15.0 - 2014-07-26 +* 1 major enhacement: + * Application Fee refunds now a list instead of array + +## 1.14.0 - 2014-06-17 +* 1 major enhancement: + * Add metadata for refunds and disputes + +## 1.13.0 - 2014-05-28 +* 1 major enhancement: + * Support for canceling transfers + +## 1.12.0 - 2014-05-21 +* 1 major enhancement: + * Support for cards for recipients + +## 1.11.0 - 2014-04-09 +* 2 minor enhancements: + * Update included ca bundles + * Implement certificate blacklisting + +## 1.10.2 - 2014-02-18 +* 1 minor enhancement: + * Add create_subscription on Customer resources, so you can create + subscriptions without needing to retrieve the customer first (github + issue #120) + +## 1.10.1 - 2014-02-03 +* 1 bugfix: + * Fix marshaling of StripeObjects + +## 1.10.0 - 2014-01-29 +* 2 major enhancements + * Support for multiple subscriptions per customer + * Testing ruby 2.1.0 + +* 2 minor enhancements + * Replace multi_json with json + * Allow #save to take opts (for :expand) + +* 1 bugfix + * Fix #try and #respond_to? on StripeObjects + +## 1.9.9 - 2013-12-02 +* 1 major enhancement + * Add ApplicationFee resource + +## 1.8.9 - 2013-11-14 +* 2 bugfixes: + * Fix gemspec dependencies so the gem doesn't break for Ruby 1.8 users + * Fix api_resource_test to not use returns as a way of testing rescue behavior + +## 1.8.8 - 2013-10-3 +* 1 major enhancement + * Add support for metadata on resources + +## 1.8.7 - 2013-08-18 +* 1 minor enhancement + * Add support for closing disputes. + +## 1.8.6 - 2013-08-13 +* 1 major enhancement + * Add Balance and BalanceTransaction resources + +## 1.8.5 - 2013-08-12 +* 1 major enhancement + * Add support for unsetting attributes by setting to nil. This permits unsetting email and description on customers and description on charges. Setting properties to a blank string is now an error. + * Attempting to set an object's id is now an error + +## 1.8.4 - 2013-07-11 +* 1 major enhancement + * Add support for new cards API (Stripe API version - 2013-07-05) + +## 1.8.3 - 2013-05-06 +* 1 bugfix: + * Fix handling of per-call API keys (github issue #67) + +## 1.8.2 - 2013-05-01 +* 3 minor enhancements: + * Use to_sym instead of type checking for minor performance improvement (github issue #59) + * Handle low-memory situations without throwing an exception (github issue #61) + * Add an Customer#upcoming_invoice convenience method (github issue #65) + +* 1 bugfix: + * Allow updating resources without first retrieving them (github issue #60) + +## 1.8.1 - 2013-04-19 +* 1 minor enhancement: + * Add support for specifying an API key when retrieving an upcoming invoice + +## 1.8.0 - 2013-04-11 +* 1 major enhancement: + * Add new Recipient resource + * Allow Transfers to be createable + +## 1.7.11 - 2013-02-21 +* 1 minor enhancement + * Add 'id' to the list of permanent attributes + +## 1.7.10 - 2013-02-01 +* 1 major enhancement + * Add support for passing options when retrieving Stripe objects e.g., Stripe::Charge.retrieve({id:"foo", expand:["customer"]}) Stripe::Charge("foo") is still supported as well + +## 1.7.9 - 2013-01-15 +* 1 major enhancement + * Add support for setting a Stripe API version override. + +## 1.7.8 - 2012-11-21 +* 1 bugfix + * Relax the version constraint on multi_json (github issue #44) + +## 1.7.7 - 2012-11-07 +* 1 minor enhancement: + * Add support for updating charge disputes + +* 1 bugfix + * Fix Account API resource bug + +## 1.7.6 - 2012-10-30 +* 1 major enhancement + * Add support for creating invoices + +## 1.7.5 - 2012-10-25 +* 1 major enhancement + * Add support for new API lists + +## 1.7.4 - 2012-10-08 +* 1 bugfix + * Fix bug introduced in 1.7.3 calling API methods that take no + arguments, like Stripe::Invoice#pay (github issue #42) + +## 1.7.3 - 2012-09-14 +* 2 bugfixes + * Make sure that both keys and values of GET params are URL-encoded. NOTE: If you were previously URL-encoding values yourself, you may need to adjust your code. + * URL-encode POST params directly, instead of allowing rest-client to do it to work around an unfortunate interaction with the hashery gem (github issue #38) + +## 1.7.2 - 2012-08-31 +* 1 major enhancement + * Add support for new pay and update methods for Invoice objects + +## 1.7.1 - 2012-08-15 +* 1 major enhancement + * Add new Account API resource + +## 1.7.0 - 2012-05-17 +* 3 major enhancements: + * Switch from vendored stripe-json to multi_json for all JSON parsing and rendering. This should not impact programmatic usage of the library, but may cause small rendering differences from, e.g., StripeObject#inspect (github issue #22) + * Add new delete_discount method to Customer objects + * Add new Transfer API resource + +* 2 minor enhancements: + * Switch from HTTP Basic auth to Bearer auth (Note: Stripe will support Basic auth for the indefinite future, but recommends Bearer auth when possible going forward) + * Numerous test suite improvements + +## 1.6.3 - 2012-03-22 +* 1 bugfix: + * Encode GET query strings ourselves instead of using rest-client to work around a bug + +## 1.6.2 - 2012-02-24 +* 1 bugfix: + * Correct argument handling in StripeObject#as_json + +## 1.6.1 - 2012-02-22 +* 1 bugfix: + * Fix StripeObject#inspect when ActiveSupport 3.0 is loaded + +## 1.6.0 - 2012-02-01 +* A whole bunch of releases between 1.5.0 and 1.6.0, but few changes, mainly the addition of plans, coupons, events, and tokens +* 1.6.0 also contains a new inspect/to_string implementation + +## 1.5.0 - 2011-05-09 +* 1 major enhancement: + * Update for new RESTful API + +## 1.3.4 - 2011-01-07 +* 1 major enhancement: + * Rename to Stripe + +## 1.2 - 2010-06-06 +* 1 major enhancement: + * Support for the set_customer_subscription and delete_customer API methods + +## 1.1 - 2010-03-14 +* 1 major enhancement: + * Support for recurring billing + +## 1.0 - 2010-01-05 +* 1 major enhancement: + * Initial release + +