Driftwatch

Stripe / Stripe API /

Breakingdirection flip: their tools call this safe

payment_method_types can now return "satispay"

What changed

Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.

Affects payment_method_types[] on invoices_payment_settings reachable from 451 operations.

New value: satispay.

can now return "satispay"

Who is affected

Code that reads Stripe's invoices_payment_settings objects, used by 488 Stripe operations.

Before and after

WhereBeforeAfter
invoices_payment_settings.payment_method_types[]"ach_credit_transfer", "ach_debit", "acss_debit", "affirm", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "boleto", "card", "cashapp", "crypto", "custom", "customer_balance", "eps", "fpx", "giropay", "grabpay", "ideal", "jp_credit_transfer", "kakao_pay", "klarna", "konbini", "kr_card", "link", "multibanco", "naver_pay", "nz_bank_account", "p24", "pay_by_bank", "payco", "paynow", "paypal", "payto", "pix", "promptpay", "revolut_pay", "sepa_credit_transfer", "sepa_debit", "sofort", "swish", "twint", "upi", "us_bank_account", "wechat_pay""ach_credit_transfer", "ach_debit", "acss_debit", "affirm", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "boleto", "card", "cashapp", "crypto", "custom", "customer_balance", "eps", "fpx", "giropay", "grabpay", "ideal", "jp_credit_transfer", "kakao_pay", "klarna", "konbini", "kr_card", "link", "multibanco", "naver_pay", "nz_bank_account", "p24", "pay_by_bank", "payco", "paynow", "paypal", "payto", "pix", "promptpay", "revolut_pay", "satispay", "sepa_credit_transfer", "sepa_debit", "sofort", "swish", "twint", "upi", "us_bank_account", "wechat_pay"
subscriptions_resource_payment_settings.payment_method_types[]"ach_credit_transfer", "ach_debit", "acss_debit", "affirm", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "boleto", "card", "cashapp", "crypto", "custom", "customer_balance", "eps", "fpx", "giropay", "grabpay", "ideal", "jp_credit_transfer", "kakao_pay", "klarna", "konbini", "kr_card", "link", "multibanco", "naver_pay", "nz_bank_account", "p24", "pay_by_bank", "payco", "paynow", "paypal", "payto", "pix", "promptpay", "revolut_pay", "sepa_credit_transfer", "sepa_debit", "sofort", "swish", "twint", "upi", "us_bank_account", "wechat_pay""ach_credit_transfer", "ach_debit", "acss_debit", "affirm", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "boleto", "card", "cashapp", "crypto", "custom", "customer_balance", "eps", "fpx", "giropay", "grabpay", "ideal", "jp_credit_transfer", "kakao_pay", "klarna", "konbini", "kr_card", "link", "multibanco", "naver_pay", "nz_bank_account", "p24", "pay_by_bank", "payco", "paynow", "paypal", "payto", "pix", "promptpay", "revolut_pay", "satispay", "sepa_credit_transfer", "sepa_debit", "sofort", "swish", "twint", "upi", "us_bank_account", "wechat_pay"

Code that breaks

switch (response.payment_method_types[0]) {
  // existing branches …
  // no branch for "satispay"
  default:
    throw new Error("unexpected payment_method_types");
}

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