|
1 | 1 | # Changelog |
| 2 | + |
| 3 | +## 19.0.0 - 2026-03-25 |
| 4 | + |
| 5 | +This release changes the pinned API version to `2026-03-25.dahlia` and contains breaking changes (prefixed with ⚠️ below). There's also a [detailed migration guide](https://github.com/stripe/stripe-ruby/wiki/Migration-guide-for-v19) to simplify your upgrade process. |
| 6 | + |
| 7 | +Please review details for the breaking changes and alternatives in the [Stripe API changelog](https://docs.stripe.com/changelog/dahlia) before upgrading. |
| 8 | + |
| 9 | +* ⚠️ **Breaking change:** [#1829](https://github.com/stripe/stripe-ruby/pull/1829) Add decimal_string coercion for v1 and v2 API fields |
| 10 | + - All `decimal_string` fields changed type from `String` to `BigDecimal` in both request params and response objects. Code that reads or writes these fields as `String` will need to use `BigDecimal` instead. Affected fields across v1 and v2 APIs: |
| 11 | + - **Checkout::Session**: `fx_rate` |
| 12 | + - **Climate::Order**: `metric_tons`; **Climate::Product**: `metric_tons_available` |
| 13 | + - **CreditNoteLineItem**: `unit_amount_decimal` |
| 14 | + - **InvoiceItem**: `quantity_decimal`, `unit_amount_decimal` |
| 15 | + - **InvoiceLineItem**: `quantity_decimal`, `unit_amount_decimal` |
| 16 | + - **Issuing::Authorization** / **Issuing::Transaction** (and TestHelpers): `quantity_decimal`, `unit_cost_decimal`, `gross_amount_decimal`, `local_amount_decimal`, `national_amount_decimal` |
| 17 | + - **Plan**: `amount_decimal`, `flat_amount_decimal`, `unit_amount_decimal` |
| 18 | + - **Price**: `unit_amount_decimal`, `flat_amount_decimal` (including `currency_options` and `tiers`) |
| 19 | + - **V2::Core::Account** / **V2::Core::AccountPerson**: `percent_ownership` |
| 20 | + - Request params on **Invoice**, **Product**, **Quote**, **Subscription**, **SubscriptionItem**, **SubscriptionSchedule**, **PaymentLink**: `unit_amount_decimal`, `flat_amount_decimal`, `quantity_decimal` (where applicable) |
| 21 | +* ⚠️ **Breaking change:** [#1828](https://github.com/stripe/stripe-ruby/pull/1828) ⚠️ Throw an error when using the wrong webhook parsing method |
| 22 | +* ⚠️ **Breaking change:** [#1823](https://github.com/stripe/stripe-ruby/pull/1823) ⚠️ Drop support for Ruby 2.6 |
| 23 | +* [#1825](https://github.com/stripe/stripe-ruby/pull/1825) Require cgi/escape instead of cgi |
| 24 | +* [#1814](https://github.com/stripe/stripe-ruby/pull/1814) Add runtime support for V2 int64 string-encoded fields |
| 25 | +* [#1817](https://github.com/stripe/stripe-ruby/pull/1817) Remove AlipayAccount and RecipientTransfer resource files |
| 26 | + - ⚠️ Removes `Stripe::AlipayAccount` and `Stripe::RecipientTransfer` resource classes (dead code since v7.0.0) |
| 27 | +* [#1816](https://github.com/stripe/stripe-ruby/pull/1816) remove v2-specific guards for removing nils from request params |
| 28 | +* [#1824](https://github.com/stripe/stripe-ruby/pull/1824) Add gem dependency on logger |
| 29 | + |
| 30 | +### ⚠️ Breaking changes due to changes in the Stripe API |
| 31 | + |
| 32 | +* Generated changes from [#1804](https://github.com/stripe/stripe-ruby/pull/1804), [#1834](https://github.com/stripe/stripe-ruby/pull/1834), [#1831](https://github.com/stripe/stripe-ruby/pull/1831), [#1830](https://github.com/stripe/stripe-ruby/pull/1830) |
| 33 | + * Add support for `upi_payments` on `Account::Capability`, `AccountCreateParams::Capability`, and `AccountUpdateParams::Capability` |
| 34 | + * Add support for `upi` on `Charge::PaymentMethodDetail`, `Checkout::Session::PaymentMethodOption`, `Checkout::SessionCreateParams::PaymentMethodOption`, `ConfirmationToken::PaymentMethodPreview`, `ConfirmationTokenCreateParams::PaymentMethodDatum`, `Mandate::PaymentMethodDetail`, `PaymentAttemptRecord::PaymentMethodDetail`, `PaymentIntent::PaymentMethodOption`, `PaymentIntentConfirmParams::PaymentMethodDatum`, `PaymentIntentConfirmParams::PaymentMethodOption`, `PaymentIntentCreateParams::PaymentMethodDatum`, `PaymentIntentCreateParams::PaymentMethodOption`, `PaymentIntentUpdateParams::PaymentMethodDatum`, `PaymentIntentUpdateParams::PaymentMethodOption`, `PaymentMethodConfigurationCreateParams`, `PaymentMethodConfigurationUpdateParams`, `PaymentMethodConfiguration`, `PaymentMethodCreateParams`, `PaymentMethod`, `PaymentRecord::PaymentMethodDetail`, `SetupAttempt::PaymentMethodDetail`, `SetupIntent::PaymentMethodOption`, `SetupIntentConfirmParams::PaymentMethodDatum`, `SetupIntentConfirmParams::PaymentMethodOption`, `SetupIntentCreateParams::PaymentMethodDatum`, `SetupIntentCreateParams::PaymentMethodOption`, `SetupIntentUpdateParams::PaymentMethodDatum`, and `SetupIntentUpdateParams::PaymentMethodOption` |
| 35 | + * Add support for `integration_identifier` on `Checkout::SessionCreateParams` and `Checkout::Session` |
| 36 | + * Add support for `crypto` on `Checkout::SessionCreateParams::PaymentMethodOption` |
| 37 | + * Add support for `pending_invoice_item_interval` on `Checkout::SessionCreateParams::SubscriptionDatum` |
| 38 | + * Add support for `metadata` on `CreditNoteCreateParams::Line`, `CreditNoteLineItem`, `CreditNoteListPreviewLineItemsParams::Line`, and `CreditNotePreviewParams::Line` |
| 39 | + * Add support for `quantity_decimal` on `InvoiceAddLinesParams::Line`, `InvoiceCreatePreviewParams::InvoiceItem`, `InvoiceItemCreateParams`, `InvoiceItemUpdateParams`, `InvoiceItem`, `InvoiceLineItemUpdateParams`, `InvoiceLineItem`, and `InvoiceUpdateLinesParams::Line` |
| 40 | + * ⚠️ Add support for `level` on `Issuing::AuthorizationCreateParams::RiskAssessment::CardTestingRisk` and `Issuing::AuthorizationCreateParams::RiskAssessment::MerchantDisputeRisk` |
| 41 | + * ⚠️ Remove support for `risk_level` on `Issuing::AuthorizationCreateParams::RiskAssessment::CardTestingRisk` and `Issuing::AuthorizationCreateParams::RiskAssessment::MerchantDisputeRisk` |
| 42 | + * Add support for `lifecycle_controls` on `Issuing::CardCreateParams` and `Issuing::Card` |
| 43 | + * ⚠️ Change type of `Issuing::Token::NetworkDatum::Visa.card_reference_id` from `string` to `nullable(string)` |
| 44 | + * ⚠️ Change type of `PaymentAttemptRecord::PaymentMethodDetail::Card.brand` and `PaymentRecord::PaymentMethodDetail::Card.brand` from `enum` to `nullable(enum)` |
| 45 | + * ⚠️ Change type of `PaymentAttemptRecord::PaymentMethodDetail::Card.exp_month` and `PaymentRecord::PaymentMethodDetail::Card.exp_month` from `longInteger` to `nullable(longInteger)` |
| 46 | + * ⚠️ Change type of `PaymentAttemptRecord::PaymentMethodDetail::Card.exp_year` and `PaymentRecord::PaymentMethodDetail::Card.exp_year` from `longInteger` to `nullable(longInteger)` |
| 47 | + * ⚠️ Change type of `PaymentAttemptRecord::PaymentMethodDetail::Card.funding` and `PaymentRecord::PaymentMethodDetail::Card.funding` from `enum('credit'|'debit'|'prepaid'|'unknown')` to `nullable(enum('credit'|'debit'|'prepaid'|'unknown'))` |
| 48 | + * ⚠️ Change type of `PaymentAttemptRecord::PaymentMethodDetail::Card.last4` and `PaymentRecord::PaymentMethodDetail::Card.last4` from `string` to `nullable(string)` |
| 49 | + * ⚠️ Change type of `PaymentAttemptRecord::PaymentMethodDetail::Card.moto` and `PaymentRecord::PaymentMethodDetail::Card.moto` from `boolean` to `nullable(boolean)` |
| 50 | + * Add support for `cryptogram`, `electronic_commerce_indicator`, `exemption_indicator_applied`, and `exemption_indicator` on `PaymentAttemptRecord::PaymentMethodDetail::Card::ThreeDSecure` and `PaymentRecord::PaymentMethodDetail::Card::ThreeDSecure` |
| 51 | + * Add support for `upi_handle_redirect_or_display_qr_code` on `PaymentIntent::NextAction` and `SetupIntent::NextAction` |
| 52 | + * Add support for `recommended_action` and `signals` on `Radar::PaymentEvaluation` |
| 53 | + * ⚠️ Remove support for `insights` on `Radar::PaymentEvaluation` |
| 54 | + |
2 | 55 | ## 18.4.2 - 2026-03-10 |
3 | 56 | * [#1811](https://github.com/stripe/stripe-ruby/pull/1811) Retry on Net::HTTPFatalError |
4 | | - - Fixes a bug where `Net::HTTPFatalError` errors were being thrown and not retried (unlike other 5xx responses from the Stripe API) |
5 | | - |
| 57 | + - Fixes a bug where `Net::HTTPFatalError` errors were being thrown and not retried (unlike other 5xx responses from the Stripe API) |
| 58 | + |
6 | 59 |
|
7 | 60 | ## 18.4.1 - 2026-03-06 |
8 | 61 | * [#1805](https://github.com/stripe/stripe-ruby/pull/1805) Add Stripe-Request-Trigger header |
|
0 commit comments