Driftwatch

Stripe / Stripe API /

Breakingdirection flip: their tools call this safe

Response field funding is no longer guaranteed

What changed

Producer-side tools call this non-breaking. For a consumer it is a null dereference on an unknown future date.

Affects funding on payments_primitives_payment_records_resource_payment_method_card_details reachable from 99 operations. Nothing fails at the call; it fails wherever the value is finally used, which is usually somewhere else entirely.

no longer guaranteed present; can now be null

Who is affected

Code that reads Stripe's payments_primitives_payment_records_resource_payment_method_card_details objects, used by 99 Stripe operations.

Before and after

WhereBeforeAfter
payments_primitives_payment_records_resource_payment_method_card_details.fundingalways presentmay be missingno longer guaranteed present
payments_primitives_payment_records_resource_payment_method_card_details.last4always presentmay be missingno longer guaranteed present
payments_primitives_payment_records_resource_payment_method_card_details.brandstringnull|stringcan now be null
payments_primitives_payment_records_resource_payment_method_card_details.exp_yearintegerinteger|nullcan now be null
payments_primitives_payment_records_resource_payment_method_card_details.brandalways presentmay be missingno longer guaranteed present
payments_primitives_payment_records_resource_payment_method_card_details.exp_monthalways presentmay be missingno longer guaranteed present
payments_primitives_payment_records_resource_payment_method_card_details.exp_yearalways presentmay be missingno longer guaranteed present
payments_primitives_payment_records_resource_payment_method_card_details.exp_monthintegerinteger|nullcan now be null
payments_primitives_payment_records_resource_payment_method_card_details.fundingstringnull|stringcan now be null
payments_primitives_payment_records_resource_payment_method_card_details.last4stringnull|stringcan now be null

Code that breaks

// response.funding may now be absent or null
const funding = response.funding ?? fallback;

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