What changed
Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.
Affects allowed_payment_method_types[] on setup_intent reachable from 609 operations.
New values: card_present, interac_present.
can now return "card_present", "interac_present"
Who is affected
Code that reads Stripe's setup_intent objects, used by 609 Stripe operations.
Before and after
| Where | Before | After |
|---|---|---|
| setup_intent.allowed_payment_method_types[] | "acss_debit", "affirm", "afterpay_clearpay", "alipay", "alma", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "bizum", "blik", "boku_promptpay", "boleto", "capchase_pay", "card", "cashapp", "check_scan", "click_to_pay", "crypto", "customer_balance", "demo_pay", "duitnow", "dummy_auth_push", "dummy_passthrough_card", "edenred", "eps", "fpx", "gcash", "getbalance", "gift_card", "giropay", "gopay", "grabpay", "id_bank_transfer", "ideal", "kakao_pay", "klarna", "knet", "konbini", "kr_card", "kr_market", "kriya", "link", "mb_way", "mobilepay", "momo", "mondu", "multibanco", "naver_pay", "netbanking", "ng_bank", "ng_bank_transfer", "ng_card", "ng_market", "ng_ussd", "ng_wallet", "nz_bank_account", "octopus", "oxxo", "p24", "paper_check", "pay_by_bank", "payco", "paynow", "paypal", "paypay", "payto", "pix", "promptpay", "qris", "rechnung", "revolut_pay", "samsung_pay", "satispay", "scalapay", "sepa_debit", "sequra", "shop_pay", "shopeepay", "sofort", "south_korea_market", "stripe_balance", "sunbit", "swish", "tamara", "test_pay", "touch_n_go", "truemoney", "twint", "upi", "us_bank_account", "us_cash_voucher", "vipps", "wechat_pay", "wero", "zip" | "acss_debit", "affirm", "afterpay_clearpay", "alipay", "alma", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "bizum", "blik", "boku_promptpay", "boleto", "capchase_pay", "card", "card_present", "cashapp", "check_scan", "click_to_pay", "crypto", "customer_balance", "demo_pay", "duitnow", "dummy_auth_push", "dummy_passthrough_card", "edenred", "eps", "fpx", "gcash", "getbalance", "gift_card", "giropay", "gopay", "grabpay", "id_bank_transfer", "ideal", "interac_present", "kakao_pay", "klarna", "knet", "konbini", "kr_card", "kr_market", "kriya", "link", "mb_way", "mobilepay", "momo", "mondu", "multibanco", "naver_pay", "netbanking", "ng_bank", "ng_bank_transfer", "ng_card", "ng_market", "ng_ussd", "ng_wallet", "nz_bank_account", "octopus", "oxxo", "p24", "paper_check", "pay_by_bank", "payco", "paynow", "paypal", "paypay", "payto", "pix", "promptpay", "qris", "rechnung", "revolut_pay", "samsung_pay", "satispay", "scalapay", "sepa_debit", "sequra", "shop_pay", "shopeepay", "sofort", "south_korea_market", "stripe_balance", "sunbit", "swish", "tamara", "test_pay", "touch_n_go", "truemoney", "twint", "upi", "us_bank_account", "us_cash_voucher", "vipps", "wechat_pay", "wero", "zip" |
| payment_intent.allowed_payment_method_types[] | "acss_debit", "affirm", "afterpay_clearpay", "alipay", "alma", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "bizum", "blik", "boku_promptpay", "boleto", "capchase_pay", "card", "cashapp", "check_scan", "click_to_pay", "crypto", "customer_balance", "demo_pay", "duitnow", "dummy_auth_push", "dummy_passthrough_card", "edenred", "eps", "fpx", "gcash", "getbalance", "gift_card", "giropay", "gopay", "grabpay", "id_bank_transfer", "ideal", "kakao_pay", "klarna", "knet", "konbini", "kr_card", "kr_market", "kriya", "link", "mb_way", "mobilepay", "momo", "mondu", "multibanco", "naver_pay", "netbanking", "ng_bank", "ng_bank_transfer", "ng_card", "ng_market", "ng_ussd", "ng_wallet", "nz_bank_account", "octopus", "oxxo", "p24", "paper_check", "pay_by_bank", "payco", "paynow", "paypal", "paypay", "payto", "pix", "promptpay", "qris", "rechnung", "revolut_pay", "samsung_pay", "satispay", "scalapay", "sepa_debit", "sequra", "shop_pay", "shopeepay", "sofort", "south_korea_market", "stripe_balance", "sunbit", "swish", "tamara", "test_pay", "touch_n_go", "truemoney", "twint", "upi", "us_bank_account", "us_cash_voucher", "vipps", "wechat_pay", "wero", "zip" | "acss_debit", "affirm", "afterpay_clearpay", "alipay", "alma", "amazon_pay", "au_becs_debit", "bacs_debit", "bancontact", "billie", "bizum", "blik", "boku_promptpay", "boleto", "capchase_pay", "card", "card_present", "cashapp", "check_scan", "click_to_pay", "crypto", "customer_balance", "demo_pay", "duitnow", "dummy_auth_push", "dummy_passthrough_card", "edenred", "eps", "fpx", "gcash", "getbalance", "gift_card", "giropay", "gopay", "grabpay", "id_bank_transfer", "ideal", "interac_present", "kakao_pay", "klarna", "knet", "konbini", "kr_card", "kr_market", "kriya", "link", "mb_way", "mobilepay", "momo", "mondu", "multibanco", "naver_pay", "netbanking", "ng_bank", "ng_bank_transfer", "ng_card", "ng_market", "ng_ussd", "ng_wallet", "nz_bank_account", "octopus", "oxxo", "p24", "paper_check", "pay_by_bank", "payco", "paynow", "paypal", "paypay", "payto", "pix", "promptpay", "qris", "rechnung", "revolut_pay", "samsung_pay", "satispay", "scalapay", "sepa_debit", "sequra", "shop_pay", "shopeepay", "sofort", "south_korea_market", "stripe_balance", "sunbit", "swish", "tamara", "test_pay", "touch_n_go", "truemoney", "twint", "upi", "us_bank_account", "us_cash_voucher", "vipps", "wechat_pay", "wero", "zip" |
Code that breaks
switch (response.allowed_payment_method_types[0]) {
// existing branches …
// no branch for "card_present"
// no branch for "interac_present"
default:
throw new Error("unexpected allowed_payment_method_types");
}Based on Stripe’s published API specification. How severity is decided.