apiwatch

All changes / Stripe

Silent sdk

stripe-python v15 and stripe-node v21 return unit_amount_decimal and other decimal_string fields as Decimal, not string; string equality checks silently go false

Took effect · Stripe SDKs (stripe-python v15, stripe-node v21) — decimal_string fields such as unit_amount_decimal

Reviewed against the vendor source on Sep 24, 2026 (AI-assisted review). Key facts are re-checked against the source daily.

What changes

The JSON on the wire is unchanged. The SDKs now parse decimal_string fields (unit_amount_decimal, quantity_decimal, fx_rate, ...) into decimal.Decimal (Python) or Stripe.Decimal (Node). Code like unit_amount_decimal == "1000" returns false without an error.

Silent: No error. Behavior, results, or cost change quietly.

What to do

Compare with Decimal("…") in Python or Stripe.Decimal in Node, not strings; pass Decimal values in request params; add a fixture with the new type before bumping the SDK major.

Strings to search for

unit_amount_decimalflat_amount_decimalquantity_decimalfx_rate

Source

https://github.com/stripe/stripe-python/releases/tag/v15.0.0