Driftwatch

Stripe / Stripe API /

Breakingdirection flip: their tools call this safe

type can now return "fee_credit_funding", "inbound_transfer", "inbound_transfer_reversal"

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 530 operations.

New values: fee_credit_funding, inbound_transfer, inbound_transfer_reversal.

can now return "fee_credit_funding", "inbound_transfer", "inbound_transfer_reversal"

Who is affected

Code that reads Stripe's balance_transaction objects, used by 530 Stripe operations.

Before and after

WhereBeforeAfter
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_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""adjustment", "advance", "advance_funding", "anticipation_repayment", "application_fee", "application_fee_refund", "charge", "climate_order_purchase", "climate_order_refund", "connect_collection_transfer", "contribution", "fee_credit_funding", "inbound_transfer", "inbound_transfer_reversal", "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 "fee_credit_funding"
  // no branch for "inbound_transfer"
  // no branch for "inbound_transfer_reversal"
  default:
    throw new Error("unexpected type");
}

Based on Stripe’s published API specification. How severity is decided.