What changed
Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.
Affects type on balance_transaction reachable from 531 operations.
New values: reserve_hold, reserve_release.
can now return "reserve_hold", "reserve_release"
Who is affected
Code that reads Stripe's balance_transaction objects, used by 531 Stripe operations.
Before and after
| Where | Before | After |
|---|---|---|
| balance_transaction.type | "adjustment", "advance", "advance_funding", "anticipation_repayment", "application_fee", "application_fee_refund", "charge", "climate_order_purchase", "climate_order_refund", "connect_collection_transfer", "contribution", "issuing_authorization_hold", "issuing_authorization_release", "issuing_dispute", "issuing_transaction", "obligation_outbound", "obligation_reversal_inbound", "payment", "payment_failure_refund", "payment_network_reserve_hold", "payment_network_reserve_release", "payment_refund", "payment_reversal", "payment_unreconciled", "payout", "payout_cancel", "payout_failure", "payout_minimum_balance_hold", "payout_minimum_balance_release", "refund", "refund_failure", "reserve_transaction", "reserved_funds", "stripe_balance_payment_debit", "stripe_balance_payment_debit_reversal", "stripe_fee", "stripe_fx_fee", "tax_fee", "topup", "topup_reversal", "transfer", "transfer_cancel", "transfer_failure", "transfer_refund" | "adjustment", "advance", "advance_funding", "anticipation_repayment", "application_fee", "application_fee_refund", "charge", "climate_order_purchase", "climate_order_refund", "connect_collection_transfer", "contribution", "issuing_authorization_hold", "issuing_authorization_release", "issuing_dispute", "issuing_transaction", "obligation_outbound", "obligation_reversal_inbound", "payment", "payment_failure_refund", "payment_network_reserve_hold", "payment_network_reserve_release", "payment_refund", "payment_reversal", "payment_unreconciled", "payout", "payout_cancel", "payout_failure", "payout_minimum_balance_hold", "payout_minimum_balance_release", "refund", "refund_failure", "reserve_hold", "reserve_release", "reserve_transaction", "reserved_funds", "stripe_balance_payment_debit", "stripe_balance_payment_debit_reversal", "stripe_fee", "stripe_fx_fee", "tax_fee", "topup", "topup_reversal", "transfer", "transfer_cancel", "transfer_failure", "transfer_refund" |
Code that breaks
switch (response.type) {
// existing branches …
// no branch for "reserve_hold"
// no branch for "reserve_release"
default:
throw new Error("unexpected type");
}Based on Stripe’s published API specification. How severity is decided.