stripe 15.3.0.pre.beta.1 → 15.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (600) hide show
  1. checksums.yaml +4 -4
  2. data/API_VERSION +1 -0
  3. data/CHANGELOG.md +683 -1581
  4. data/OPENAPI_VERSION +1 -1
  5. data/README.md +14 -50
  6. data/VERSION +1 -1
  7. data/lib/stripe/api_requestor.rb +0 -28
  8. data/lib/stripe/api_version.rb +2 -1
  9. data/lib/stripe/errors.rb +0 -54
  10. data/lib/stripe/event_types.rb +0 -98
  11. data/lib/stripe/events/v2_core_event_destination_ping_event.rb +1 -1
  12. data/lib/stripe/object_types.rb +0 -50
  13. data/lib/stripe/resources/account.rb +82 -650
  14. data/lib/stripe/resources/account_session.rb +80 -335
  15. data/lib/stripe/resources/billing/credit_balance_summary.rb +0 -2
  16. data/lib/stripe/resources/billing/credit_balance_transaction.rb +0 -4
  17. data/lib/stripe/resources/billing/credit_grant.rb +0 -10
  18. data/lib/stripe/resources/billing_portal/session.rb +2 -8
  19. data/lib/stripe/resources/card.rb +0 -2
  20. data/lib/stripe/resources/cash_balance.rb +0 -2
  21. data/lib/stripe/resources/charge.rb +28 -1553
  22. data/lib/stripe/resources/checkout/session.rb +55 -333
  23. data/lib/stripe/resources/confirmation_token.rb +19 -181
  24. data/lib/stripe/resources/coupon.rb +1 -30
  25. data/lib/stripe/resources/credit_note.rb +9 -15
  26. data/lib/stripe/resources/credit_note_line_item.rb +0 -9
  27. data/lib/stripe/resources/customer.rb +0 -2
  28. data/lib/stripe/resources/customer_balance_transaction.rb +0 -2
  29. data/lib/stripe/resources/customer_cash_balance_transaction.rb +0 -2
  30. data/lib/stripe/resources/customer_session.rb +3 -8
  31. data/lib/stripe/resources/discount.rb +0 -2
  32. data/lib/stripe/resources/event.rb +1 -32
  33. data/lib/stripe/resources/financial_connections/account.rb +1 -22
  34. data/lib/stripe/resources/financial_connections/session.rb +2 -62
  35. data/lib/stripe/resources/identity/verification_session.rb +34 -10
  36. data/lib/stripe/resources/invoice.rb +33 -1062
  37. data/lib/stripe/resources/invoice_item.rb +3 -82
  38. data/lib/stripe/resources/invoice_line_item.rb +1 -55
  39. data/lib/stripe/resources/invoice_payment.rb +53 -2
  40. data/lib/stripe/resources/issuing/cardholder.rb +1 -2
  41. data/lib/stripe/resources/issuing/transaction.rb +0 -6
  42. data/lib/stripe/resources/line_item.rb +0 -37
  43. data/lib/stripe/resources/mandate.rb +3 -24
  44. data/lib/stripe/resources/payment_intent.rb +875 -5512
  45. data/lib/stripe/resources/payment_method.rb +18 -201
  46. data/lib/stripe/resources/payment_method_configuration.rb +0 -295
  47. data/lib/stripe/resources/payout.rb +0 -6
  48. data/lib/stripe/resources/price.rb +0 -30
  49. data/lib/stripe/resources/promotion_code.rb +0 -10
  50. data/lib/stripe/resources/quote.rb +16 -2033
  51. data/lib/stripe/resources/refund.rb +0 -9
  52. data/lib/stripe/resources/setup_attempt.rb +1 -22
  53. data/lib/stripe/resources/setup_intent.rb +294 -581
  54. data/lib/stripe/resources/source.rb +0 -29
  55. data/lib/stripe/resources/subscription.rb +36 -298
  56. data/lib/stripe/resources/subscription_item.rb +3 -84
  57. data/lib/stripe/resources/subscription_schedule.rb +27 -1008
  58. data/lib/stripe/resources/tax/registration.rb +20 -0
  59. data/lib/stripe/resources/tax_id.rb +2 -12
  60. data/lib/stripe/resources/terminal/configuration.rb +1 -0
  61. data/lib/stripe/resources/terminal/reader.rb +10 -18
  62. data/lib/stripe/resources/token.rb +1 -1
  63. data/lib/stripe/resources/transfer.rb +0 -6
  64. data/lib/stripe/resources/treasury/financial_account.rb +8 -23
  65. data/lib/stripe/resources/treasury/financial_account_features.rb +0 -2
  66. data/lib/stripe/resources/treasury/outbound_transfer.rb +0 -37
  67. data/lib/stripe/resources/treasury/received_credit.rb +1 -38
  68. data/lib/stripe/resources/treasury/received_debit.rb +1 -40
  69. data/lib/stripe/resources.rb +0 -104
  70. data/lib/stripe/services/account_service.rb +76 -559
  71. data/lib/stripe/services/account_session_service.rb +49 -274
  72. data/lib/stripe/services/billing/credit_balance_summary_service.rb +1 -4
  73. data/lib/stripe/services/billing/credit_balance_transaction_service.rb +0 -4
  74. data/lib/stripe/services/billing/credit_grant_service.rb +0 -8
  75. data/lib/stripe/services/billing_portal/session_service.rb +1 -5
  76. data/lib/stripe/services/charge_service.rb +0 -1418
  77. data/lib/stripe/services/checkout/session_service.rb +55 -250
  78. data/lib/stripe/services/coupon_service.rb +1 -17
  79. data/lib/stripe/services/credit_note_preview_lines_service.rb +3 -3
  80. data/lib/stripe/services/credit_note_service.rb +6 -10
  81. data/lib/stripe/services/customer_session_service.rb +2 -5
  82. data/lib/stripe/services/financial_connections/account_service.rb +2 -7
  83. data/lib/stripe/services/financial_connections/session_service.rb +2 -34
  84. data/lib/stripe/services/financial_connections_service.rb +1 -2
  85. data/lib/stripe/services/identity/verification_session_service.rb +16 -8
  86. data/lib/stripe/services/invoice_item_service.rb +2 -74
  87. data/lib/stripe/services/invoice_line_item_service.rb +1 -33
  88. data/lib/stripe/services/invoice_payment_service.rb +83 -0
  89. data/lib/stripe/services/invoice_service.rb +33 -1013
  90. data/lib/stripe/services/issuing/cardholder_service.rb +1 -2
  91. data/lib/stripe/services/issuing/transaction_service.rb +0 -4
  92. data/lib/stripe/services/issuing_service.rb +1 -5
  93. data/lib/stripe/services/payment_intent_service.rb +650 -4832
  94. data/lib/stripe/services/payment_method_configuration_service.rb +0 -210
  95. data/lib/stripe/services/payment_method_service.rb +6 -120
  96. data/lib/stripe/services/payout_service.rb +0 -4
  97. data/lib/stripe/services/price_service.rb +0 -19
  98. data/lib/stripe/services/promotion_code_service.rb +0 -8
  99. data/lib/stripe/services/quote_service.rb +13 -1719
  100. data/lib/stripe/services/setup_intent_service.rb +284 -540
  101. data/lib/stripe/services/subscription_item_service.rb +3 -75
  102. data/lib/stripe/services/subscription_schedule_service.rb +19 -911
  103. data/lib/stripe/services/subscription_service.rb +30 -253
  104. data/lib/stripe/services/tax/registration_service.rb +13 -0
  105. data/lib/stripe/services/tax_id_service.rb +2 -8
  106. data/lib/stripe/services/tax_service.rb +1 -3
  107. data/lib/stripe/services/terminal/reader_service.rb +4 -4
  108. data/lib/stripe/services/terminal_service.rb +1 -2
  109. data/lib/stripe/services/test_helpers/confirmation_token_service.rb +6 -98
  110. data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +1 -25
  111. data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +1 -25
  112. data/lib/stripe/services/token_service.rb +1 -1
  113. data/lib/stripe/services/transfer_service.rb +0 -4
  114. data/lib/stripe/services/treasury/financial_account_features_service.rb +1 -4
  115. data/lib/stripe/services/treasury/financial_account_service.rb +7 -17
  116. data/lib/stripe/services/treasury/outbound_transfer_service.rb +0 -24
  117. data/lib/stripe/services/v1_services.rb +2 -11
  118. data/lib/stripe/services/v2/billing_service.rb +2 -2
  119. data/lib/stripe/services/v2/core/event_destination_service.rb +16 -16
  120. data/lib/stripe/services/v2/core_service.rb +1 -4
  121. data/lib/stripe/services/v2_services.rb +2 -5
  122. data/lib/stripe/services.rb +1 -53
  123. data/lib/stripe/stripe_configuration.rb +1 -3
  124. data/lib/stripe/stripe_object.rb +1 -1
  125. data/lib/stripe/util.rb +1 -7
  126. data/lib/stripe/version.rb +1 -1
  127. data/lib/stripe/webhook.rb +1 -1
  128. data/lib/stripe.rb +0 -53
  129. data/rbi/stripe/resources/account.rbi +4995 -0
  130. data/rbi/stripe/resources/account_link.rbi +74 -0
  131. data/rbi/stripe/resources/account_session.rbi +1013 -0
  132. data/rbi/stripe/resources/apple_pay_domain.rbi +88 -0
  133. data/rbi/stripe/resources/application.rbi +20 -0
  134. data/rbi/stripe/resources/application_fee.rbi +118 -0
  135. data/rbi/stripe/resources/application_fee_refund.rbi +37 -0
  136. data/rbi/stripe/resources/apps/secret.rbi +195 -0
  137. data/rbi/stripe/resources/balance.rbi +235 -0
  138. data/rbi/stripe/resources/balance_transaction.rbi +147 -0
  139. data/rbi/stripe/resources/bank_account.rbi +127 -0
  140. data/rbi/stripe/resources/billing/alert.rbi +201 -0
  141. data/rbi/stripe/resources/billing/alert_triggered.rbi +28 -0
  142. data/rbi/stripe/resources/billing/credit_balance_summary.rbi +63 -0
  143. data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +147 -0
  144. data/rbi/stripe/resources/billing/credit_grant.rbi +291 -0
  145. data/rbi/stripe/resources/billing/meter.rbi +226 -0
  146. data/rbi/stripe/resources/billing/meter_event.rbi +64 -0
  147. data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +64 -0
  148. data/rbi/stripe/resources/billing/meter_event_summary.rbi +35 -0
  149. data/rbi/stripe/resources/billing_portal/configuration.rbi +645 -0
  150. data/rbi/stripe/resources/billing_portal/session.rbi +345 -0
  151. data/rbi/stripe/resources/capability.rbi +125 -0
  152. data/rbi/stripe/resources/card.rbi +125 -0
  153. data/rbi/stripe/resources/cash_balance.rbi +32 -0
  154. data/rbi/stripe/resources/charge.rbi +2086 -0
  155. data/rbi/stripe/resources/checkout/session.rbi +4060 -0
  156. data/rbi/stripe/resources/climate/order.rbi +245 -0
  157. data/rbi/stripe/resources/climate/product.rbi +75 -0
  158. data/rbi/stripe/resources/climate/supplier.rbi +72 -0
  159. data/rbi/stripe/resources/confirmation_token.rbi +1818 -0
  160. data/rbi/stripe/resources/connect_collection_transfer.rbi +26 -0
  161. data/rbi/stripe/resources/country_spec.rbi +85 -0
  162. data/rbi/stripe/resources/coupon.rbi +250 -0
  163. data/rbi/stripe/resources/credit_note.rbi +752 -0
  164. data/rbi/stripe/resources/credit_note_line_item.rbi +101 -0
  165. data/rbi/stripe/resources/customer.rbi +1005 -0
  166. data/rbi/stripe/resources/customer_balance_transaction.rbi +56 -0
  167. data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +151 -0
  168. data/rbi/stripe/resources/customer_session.rbi +200 -0
  169. data/rbi/stripe/resources/discount.rbi +53 -0
  170. data/rbi/stripe/resources/dispute.rbi +761 -0
  171. data/rbi/stripe/resources/entitlements/active_entitlement.rbi +58 -0
  172. data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +23 -0
  173. data/rbi/stripe/resources/entitlements/feature.rbi +117 -0
  174. data/rbi/stripe/resources/ephemeral_key.rbi +44 -0
  175. data/rbi/stripe/resources/event.rbi +149 -0
  176. data/rbi/stripe/resources/exchange_rate.rbi +66 -0
  177. data/rbi/stripe/resources/file.rbi +143 -0
  178. data/rbi/stripe/resources/file_link.rbi +141 -0
  179. data/rbi/stripe/resources/financial_connections/account.rbi +339 -0
  180. data/rbi/stripe/resources/financial_connections/account_owner.rbi +35 -0
  181. data/rbi/stripe/resources/financial_connections/account_ownership.rbi +23 -0
  182. data/rbi/stripe/resources/financial_connections/session.rbi +123 -0
  183. data/rbi/stripe/resources/financial_connections/transaction.rbi +124 -0
  184. data/rbi/stripe/resources/forwarding/request.rbi +216 -0
  185. data/rbi/stripe/resources/funding_instructions.rbi +437 -0
  186. data/rbi/stripe/resources/identity/verification_report.rbi +360 -0
  187. data/rbi/stripe/resources/identity/verification_session.rbi +564 -0
  188. data/rbi/stripe/resources/invoice.rbi +3842 -0
  189. data/rbi/stripe/resources/invoice_item.rbi +470 -0
  190. data/rbi/stripe/resources/invoice_line_item.rbi +432 -0
  191. data/rbi/stripe/resources/invoice_payment.rbi +121 -0
  192. data/rbi/stripe/resources/invoice_rendering_template.rbi +104 -0
  193. data/rbi/stripe/resources/issuing/authorization.rbi +1283 -0
  194. data/rbi/stripe/resources/issuing/card.rbi +741 -0
  195. data/rbi/stripe/resources/issuing/cardholder.rbi +744 -0
  196. data/rbi/stripe/resources/issuing/dispute.rbi +913 -0
  197. data/rbi/stripe/resources/issuing/personalization_design.rbi +338 -0
  198. data/rbi/stripe/resources/issuing/physical_bundle.rbi +79 -0
  199. data/rbi/stripe/resources/issuing/token.rbi +226 -0
  200. data/rbi/stripe/resources/issuing/transaction.rbi +1061 -0
  201. data/rbi/stripe/resources/line_item.rbi +72 -0
  202. data/rbi/stripe/resources/login_link.rbi +19 -0
  203. data/rbi/stripe/resources/mandate.rbi +191 -0
  204. data/rbi/stripe/resources/payment_intent.rbi +9987 -0
  205. data/rbi/stripe/resources/payment_link.rbi +1801 -0
  206. data/rbi/stripe/resources/payment_method.rbi +1770 -0
  207. data/rbi/stripe/resources/payment_method_configuration.rbi +3550 -0
  208. data/rbi/stripe/resources/payment_method_domain.rbi +228 -0
  209. data/rbi/stripe/resources/payout.rbi +300 -0
  210. data/rbi/stripe/resources/person.rbi +401 -0
  211. data/rbi/stripe/resources/plan.rbi +371 -0
  212. data/rbi/stripe/resources/price.rbi +694 -0
  213. data/rbi/stripe/resources/product.rbi +555 -0
  214. data/rbi/stripe/resources/product_feature.rbi +26 -0
  215. data/rbi/stripe/resources/promotion_code.rbi +261 -0
  216. data/rbi/stripe/resources/quote.rbi +1145 -0
  217. data/rbi/stripe/resources/radar/early_fraud_warning.rbi +98 -0
  218. data/rbi/stripe/resources/radar/value_list.rbi +168 -0
  219. data/rbi/stripe/resources/radar/value_list_item.rbi +129 -0
  220. data/rbi/stripe/resources/refund.rbi +523 -0
  221. data/rbi/stripe/resources/reporting/report_run.rbi +191 -0
  222. data/rbi/stripe/resources/reporting/report_type.rbi +57 -0
  223. data/rbi/stripe/resources/reserve_transaction.rbi +23 -0
  224. data/rbi/stripe/resources/reversal.rbi +51 -0
  225. data/rbi/stripe/resources/review.rbi +154 -0
  226. data/rbi/stripe/resources/setup_attempt.rbi +477 -0
  227. data/rbi/stripe/resources/setup_intent.rbi +3978 -0
  228. data/rbi/stripe/resources/shipping_rate.rbi +305 -0
  229. data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +75 -0
  230. data/rbi/stripe/resources/source.rbi +1496 -0
  231. data/rbi/stripe/resources/source_mandate_notification.rbi +77 -0
  232. data/rbi/stripe/resources/source_transaction.rbi +127 -0
  233. data/rbi/stripe/resources/subscription.rbi +2080 -0
  234. data/rbi/stripe/resources/subscription_item.rbi +404 -0
  235. data/rbi/stripe/resources/subscription_schedule.rbi +1645 -0
  236. data/rbi/stripe/resources/tax/calculation.rbi +478 -0
  237. data/rbi/stripe/resources/tax/calculation_line_item.rbi +91 -0
  238. data/rbi/stripe/resources/tax/registration.rbi +2732 -0
  239. data/rbi/stripe/resources/tax/settings.rbi +141 -0
  240. data/rbi/stripe/resources/tax/transaction.rbi +351 -0
  241. data/rbi/stripe/resources/tax/transaction_line_item.rbi +54 -0
  242. data/rbi/stripe/resources/tax_code.rbi +44 -0
  243. data/rbi/stripe/resources/tax_deducted_at_source.rbi +23 -0
  244. data/rbi/stripe/resources/tax_id.rbi +165 -0
  245. data/rbi/stripe/resources/tax_rate.rbi +239 -0
  246. data/rbi/stripe/resources/terminal/configuration.rbi +1387 -0
  247. data/rbi/stripe/resources/terminal/connection_token.rbi +37 -0
  248. data/rbi/stripe/resources/terminal/location.rbi +222 -0
  249. data/rbi/stripe/resources/terminal/reader.rbi +994 -0
  250. data/rbi/stripe/resources/test_helpers/test_clock.rbi +132 -0
  251. data/rbi/stripe/resources/token.rbi +1283 -0
  252. data/rbi/stripe/resources/topup.rbi +222 -0
  253. data/rbi/stripe/resources/transfer.rbi +199 -0
  254. data/rbi/stripe/resources/treasury/credit_reversal.rbi +119 -0
  255. data/rbi/stripe/resources/treasury/debit_reversal.rbi +131 -0
  256. data/rbi/stripe/resources/treasury/financial_account.rbi +869 -0
  257. data/rbi/stripe/resources/treasury/financial_account_features.rbi +260 -0
  258. data/rbi/stripe/resources/treasury/inbound_transfer.rbi +295 -0
  259. data/rbi/stripe/resources/treasury/outbound_payment.rbi +592 -0
  260. data/rbi/stripe/resources/treasury/outbound_transfer.rbi +431 -0
  261. data/rbi/stripe/resources/treasury/received_credit.rbi +302 -0
  262. data/rbi/stripe/resources/treasury/received_debit.rbi +256 -0
  263. data/rbi/stripe/resources/treasury/transaction.rbi +215 -0
  264. data/rbi/stripe/resources/treasury/transaction_entry.rbi +192 -0
  265. data/rbi/stripe/resources/v2/amount.rbi +14 -0
  266. data/rbi/stripe/resources/v2/billing/meter_event.rbi +37 -0
  267. data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +41 -0
  268. data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +31 -0
  269. data/rbi/stripe/resources/v2/event.rbi +48 -0
  270. data/rbi/stripe/resources/v2/event_destination.rbi +91 -0
  271. data/rbi/stripe/resources/webhook_endpoint.rbi +168 -0
  272. data/rbi/stripe/services/account_capability_service.rbi +51 -0
  273. data/{lib/stripe/services/external_account_service.rb → rbi/stripe/services/account_external_account_service.rbi} +122 -135
  274. data/rbi/stripe/services/account_link_service.rbi +58 -0
  275. data/rbi/stripe/services/account_login_link_service.rbi +22 -0
  276. data/rbi/stripe/services/account_person_service.rbi +1011 -0
  277. data/rbi/stripe/services/account_service.rbi +4281 -0
  278. data/rbi/stripe/services/account_session_service.rbi +646 -0
  279. data/rbi/stripe/services/apple_pay_domain_service.rbi +76 -0
  280. data/rbi/stripe/services/application_fee_refund_service.rbi +93 -0
  281. data/rbi/stripe/services/application_fee_service.rbi +78 -0
  282. data/rbi/stripe/services/apps/secret_service.rbi +151 -0
  283. data/rbi/stripe/services/apps_service.rbi +9 -0
  284. data/rbi/stripe/services/balance_service.rbi +21 -0
  285. data/rbi/stripe/services/balance_transaction_service.rbi +93 -0
  286. data/rbi/stripe/services/billing/alert_service.rbi +152 -0
  287. data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +68 -0
  288. data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +59 -0
  289. data/rbi/stripe/services/billing/credit_grant_service.rbi +211 -0
  290. data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +42 -0
  291. data/rbi/stripe/services/billing/meter_event_service.rbi +42 -0
  292. data/rbi/stripe/services/billing/meter_event_summary_service.rbi +54 -0
  293. data/rbi/stripe/services/billing/meter_service.rbi +163 -0
  294. data/rbi/stripe/services/billing_portal/configuration_service.rbi +511 -0
  295. data/rbi/stripe/services/billing_portal/session_service.rbi +204 -0
  296. data/rbi/stripe/services/billing_portal_service.rbi +10 -0
  297. data/rbi/stripe/services/billing_service.rbi +15 -0
  298. data/rbi/stripe/services/charge_service.rbi +448 -0
  299. data/rbi/stripe/services/checkout/session_line_item_service.rbi +33 -0
  300. data/rbi/stripe/services/checkout/session_service.rbi +2670 -0
  301. data/rbi/stripe/services/checkout_service.rbi +9 -0
  302. data/rbi/stripe/services/climate/order_service.rbi +142 -0
  303. data/rbi/stripe/services/climate/product_service.rbi +46 -0
  304. data/{lib/stripe/services/financial_connections/institution_service.rb → rbi/stripe/services/climate/supplier_service.rbi} +25 -36
  305. data/rbi/stripe/services/climate_service.rbi +11 -0
  306. data/rbi/stripe/services/confirmation_token_service.rbi +20 -0
  307. data/rbi/stripe/services/country_spec_service.rbi +44 -0
  308. data/rbi/stripe/services/coupon_service.rbi +194 -0
  309. data/{lib/stripe/services/quote_preview_invoice_service.rb → rbi/stripe/services/credit_note_line_item_service.rbi} +16 -20
  310. data/rbi/stripe/services/credit_note_preview_lines_service.rbi +167 -0
  311. data/rbi/stripe/services/credit_note_service.rbi +415 -0
  312. data/rbi/stripe/services/customer_balance_transaction_service.rbi +92 -0
  313. data/rbi/stripe/services/customer_cash_balance_service.rbi +45 -0
  314. data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +44 -0
  315. data/rbi/stripe/services/customer_funding_instructions_service.rbi +59 -0
  316. data/rbi/stripe/services/customer_payment_method_service.rbi +57 -0
  317. data/rbi/stripe/services/customer_payment_source_service.rbi +232 -0
  318. data/rbi/stripe/services/customer_service.rbi +647 -0
  319. data/rbi/stripe/services/customer_session_service.rbi +116 -0
  320. data/rbi/stripe/services/customer_tax_id_service.rbi +70 -0
  321. data/rbi/stripe/services/dispute_service.rbi +424 -0
  322. data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +55 -0
  323. data/rbi/stripe/services/entitlements/feature_service.rbi +107 -0
  324. data/rbi/stripe/services/entitlements_service.rbi +10 -0
  325. data/rbi/stripe/services/ephemeral_key_service.rbi +53 -0
  326. data/rbi/stripe/services/event_service.rbi +83 -0
  327. data/rbi/stripe/services/exchange_rate_service.rbi +44 -0
  328. data/rbi/stripe/services/file_link_service.rbi +124 -0
  329. data/rbi/stripe/services/file_service.rbi +116 -0
  330. data/rbi/stripe/services/financial_connections/account_owner_service.rbi +42 -0
  331. data/rbi/stripe/services/financial_connections/account_service.rbi +133 -0
  332. data/rbi/stripe/services/financial_connections/session_service.rbi +88 -0
  333. data/rbi/stripe/services/financial_connections/transaction_service.rbi +92 -0
  334. data/rbi/stripe/services/financial_connections_service.rbi +11 -0
  335. data/rbi/stripe/services/forwarding/request_service.rbi +134 -0
  336. data/rbi/stripe/services/forwarding_service.rbi +9 -0
  337. data/rbi/stripe/services/identity/verification_report_service.rbi +87 -0
  338. data/rbi/stripe/services/identity/verification_session_service.rbi +339 -0
  339. data/rbi/stripe/services/identity_service.rbi +10 -0
  340. data/rbi/stripe/services/invoice_item_service.rbi +366 -0
  341. data/rbi/stripe/services/invoice_line_item_service.rbi +259 -0
  342. data/rbi/stripe/services/invoice_payment_service.rbi +71 -0
  343. data/rbi/stripe/services/invoice_rendering_template_service.rbi +82 -0
  344. data/rbi/stripe/services/invoice_service.rbi +3011 -0
  345. data/rbi/stripe/services/issuing/authorization_service.rbi +146 -0
  346. data/rbi/stripe/services/issuing/card_service.rbi +495 -0
  347. data/rbi/stripe/services/issuing/cardholder_service.rbi +587 -0
  348. data/rbi/stripe/services/issuing/dispute_service.rbi +707 -0
  349. data/rbi/stripe/services/issuing/personalization_design_service.rbi +243 -0
  350. data/rbi/stripe/services/issuing/physical_bundle_service.rbi +59 -0
  351. data/rbi/stripe/services/issuing/token_service.rbi +99 -0
  352. data/rbi/stripe/services/issuing/transaction_service.rbi +105 -0
  353. data/rbi/stripe/services/issuing_service.rbi +16 -0
  354. data/rbi/stripe/services/mandate_service.rbi +20 -0
  355. data/rbi/stripe/services/payment_intent_service.rbi +7989 -0
  356. data/{lib/stripe/services/payment_intent_amount_details_line_item_service.rb → rbi/stripe/services/payment_link_line_item_service.rbi} +16 -20
  357. data/rbi/stripe/services/payment_link_service.rbi +1352 -0
  358. data/rbi/stripe/services/payment_method_configuration_service.rbi +2487 -0
  359. data/rbi/stripe/services/payment_method_domain_service.rbi +112 -0
  360. data/rbi/stripe/services/payment_method_service.rbi +781 -0
  361. data/rbi/stripe/services/payout_service.rbi +205 -0
  362. data/rbi/stripe/services/plan_service.rbi +282 -0
  363. data/rbi/stripe/services/price_service.rbi +546 -0
  364. data/rbi/stripe/services/product_feature_service.rbi +67 -0
  365. data/rbi/stripe/services/product_service.rbi +477 -0
  366. data/rbi/stripe/services/promotion_code_service.rbi +214 -0
  367. data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +31 -0
  368. data/{lib/stripe/services/order_line_item_service.rb → rbi/stripe/services/quote_line_item_service.rbi} +16 -20
  369. data/rbi/stripe/services/quote_service.rbi +699 -0
  370. data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +85 -0
  371. data/rbi/stripe/services/radar/value_list_item_service.rbi +109 -0
  372. data/rbi/stripe/services/radar/value_list_service.rbi +141 -0
  373. data/rbi/stripe/services/radar_service.rbi +11 -0
  374. data/rbi/stripe/services/refund_service.rbi +185 -0
  375. data/rbi/stripe/services/reporting/report_run_service.rbi +135 -0
  376. data/rbi/stripe/services/reporting/report_type_service.rbi +35 -0
  377. data/rbi/stripe/services/reporting_service.rbi +10 -0
  378. data/rbi/stripe/services/review_service.rbi +84 -0
  379. data/rbi/stripe/services/setup_attempt_service.rbi +65 -0
  380. data/rbi/stripe/services/setup_intent_service.rbi +3709 -0
  381. data/rbi/stripe/services/shipping_rate_service.rbi +241 -0
  382. data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +46 -0
  383. data/rbi/stripe/services/sigma_service.rbi +9 -0
  384. data/rbi/stripe/services/source_service.rbi +663 -0
  385. data/{lib/stripe/services/quote_line_service.rb → rbi/stripe/services/source_transaction_service.rbi} +16 -20
  386. data/rbi/stripe/services/subscription_item_service.rbi +350 -0
  387. data/rbi/stripe/services/subscription_schedule_service.rbi +1301 -0
  388. data/rbi/stripe/services/subscription_service.rbi +1684 -0
  389. data/{lib/stripe/services/financial_connections/account_inferred_balance_service.rb → rbi/stripe/services/tax/calculation_line_item_service.rbi} +17 -21
  390. data/rbi/stripe/services/tax/calculation_service.rbi +234 -0
  391. data/rbi/stripe/services/tax/registration_service.rbi +1858 -0
  392. data/rbi/stripe/services/tax/settings_service.rbi +93 -0
  393. data/{lib/stripe/services/privacy/redaction_job_validation_error_service.rb → rbi/stripe/services/tax/transaction_line_item_service.rbi} +17 -21
  394. data/rbi/stripe/services/tax/transaction_service.rbi +146 -0
  395. data/rbi/stripe/services/tax_code_service.rbi +44 -0
  396. data/rbi/stripe/services/tax_id_service.rbi +110 -0
  397. data/rbi/stripe/services/tax_rate_service.rbi +185 -0
  398. data/rbi/stripe/services/tax_service.rbi +12 -0
  399. data/rbi/stripe/services/terminal/configuration_service.rbi +1118 -0
  400. data/rbi/stripe/services/terminal/connection_token_service.rbi +25 -0
  401. data/rbi/stripe/services/terminal/location_service.rbi +182 -0
  402. data/rbi/stripe/services/terminal/reader_service.rbi +540 -0
  403. data/rbi/stripe/services/terminal_service.rbi +12 -0
  404. data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +746 -0
  405. data/rbi/stripe/services/test_helpers/customer_service.rbi +33 -0
  406. data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +848 -0
  407. data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +76 -0
  408. data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +69 -0
  409. data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +711 -0
  410. data/rbi/stripe/services/test_helpers/issuing_service.rbi +14 -0
  411. data/rbi/stripe/services/test_helpers/refund_service.rbi +22 -0
  412. data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +93 -0
  413. data/rbi/stripe/services/test_helpers/terminal_service.rbi +11 -0
  414. data/rbi/stripe/services/test_helpers/test_clock_service.rbi +90 -0
  415. data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +64 -0
  416. data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +125 -0
  417. data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +125 -0
  418. data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +87 -0
  419. data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +87 -0
  420. data/rbi/stripe/services/test_helpers/treasury_service.rbi +15 -0
  421. data/rbi/stripe/services/test_helpers_service.rbi +15 -0
  422. data/rbi/stripe/services/token_service.rbi +1257 -0
  423. data/rbi/stripe/services/topup_service.rbi +176 -0
  424. data/rbi/stripe/services/transfer_reversal_service.rbi +101 -0
  425. data/rbi/stripe/services/transfer_service.rbi +152 -0
  426. data/rbi/stripe/services/treasury/credit_reversal_service.rbi +84 -0
  427. data/rbi/stripe/services/treasury/debit_reversal_service.rbi +88 -0
  428. data/rbi/stripe/services/treasury/financial_account_features_service.rbi +198 -0
  429. data/rbi/stripe/services/treasury/financial_account_service.rbi +566 -0
  430. data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +117 -0
  431. data/rbi/stripe/services/treasury/outbound_payment_service.rbi +304 -0
  432. data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +157 -0
  433. data/rbi/stripe/services/treasury/received_credit_service.rbi +72 -0
  434. data/rbi/stripe/services/treasury/received_debit_service.rbi +59 -0
  435. data/rbi/stripe/services/treasury/transaction_entry_service.rbi +111 -0
  436. data/rbi/stripe/services/treasury/transaction_service.rbi +122 -0
  437. data/rbi/stripe/services/treasury_service.rbi +18 -0
  438. data/rbi/stripe/services/v1_services.rbi +77 -0
  439. data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +39 -0
  440. data/rbi/stripe/services/v2/billing/meter_event_service.rbi +42 -0
  441. data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +18 -0
  442. data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +55 -0
  443. data/rbi/stripe/services/v2/billing_service.rbi +14 -0
  444. data/rbi/stripe/services/v2/core/event_destination_service.rbi +192 -0
  445. data/rbi/stripe/services/v2/core/event_service.rbi +36 -0
  446. data/rbi/stripe/services/v2/core_service.rbi +12 -0
  447. data/rbi/stripe/services/v2_services.rbi +10 -0
  448. data/rbi/stripe/services/webhook_endpoint_service.rbi +129 -0
  449. data/stripe.gemspec +1 -4
  450. metadata +326 -162
  451. data/lib/stripe/events/v2_core_account_closed_event.rb +0 -21
  452. data/lib/stripe/events/v2_core_account_created_event.rb +0 -21
  453. data/lib/stripe/events/v2_core_account_including_configuration_customer_capability_status_updated_event.rb +0 -23
  454. data/lib/stripe/events/v2_core_account_including_configuration_customer_updated_event.rb +0 -21
  455. data/lib/stripe/events/v2_core_account_including_configuration_merchant_capability_status_updated_event.rb +0 -23
  456. data/lib/stripe/events/v2_core_account_including_configuration_merchant_updated_event.rb +0 -21
  457. data/lib/stripe/events/v2_core_account_including_configuration_recipient_capability_status_updated_event.rb +0 -23
  458. data/lib/stripe/events/v2_core_account_including_configuration_recipient_updated_event.rb +0 -21
  459. data/lib/stripe/events/v2_core_account_including_defaults_updated_event.rb +0 -21
  460. data/lib/stripe/events/v2_core_account_including_identity_updated_event.rb +0 -21
  461. data/lib/stripe/events/v2_core_account_including_requirements_updated_event.rb +0 -21
  462. data/lib/stripe/events/v2_core_account_link_completed_event.rb +0 -13
  463. data/lib/stripe/events/v2_core_account_person_created_event.rb +0 -23
  464. data/lib/stripe/events/v2_core_account_person_deleted_event.rb +0 -23
  465. data/lib/stripe/events/v2_core_account_person_updated_event.rb +0 -23
  466. data/lib/stripe/events/v2_core_account_updated_event.rb +0 -21
  467. data/lib/stripe/events/v2_money_management_adjustment_created_event.rb +0 -21
  468. data/lib/stripe/events/v2_money_management_financial_account_created_event.rb +0 -21
  469. data/lib/stripe/events/v2_money_management_financial_account_updated_event.rb +0 -21
  470. data/lib/stripe/events/v2_money_management_financial_address_activated_event.rb +0 -21
  471. data/lib/stripe/events/v2_money_management_financial_address_failed_event.rb +0 -21
  472. data/lib/stripe/events/v2_money_management_inbound_transfer_available_event.rb +0 -23
  473. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_failed_event.rb +0 -21
  474. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_processing_event.rb +0 -21
  475. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_queued_event.rb +0 -21
  476. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_returned_event.rb +0 -21
  477. data/lib/stripe/events/v2_money_management_inbound_transfer_bank_debit_succeeded_event.rb +0 -21
  478. data/lib/stripe/events/v2_money_management_outbound_payment_canceled_event.rb +0 -21
  479. data/lib/stripe/events/v2_money_management_outbound_payment_created_event.rb +0 -21
  480. data/lib/stripe/events/v2_money_management_outbound_payment_failed_event.rb +0 -21
  481. data/lib/stripe/events/v2_money_management_outbound_payment_posted_event.rb +0 -21
  482. data/lib/stripe/events/v2_money_management_outbound_payment_returned_event.rb +0 -21
  483. data/lib/stripe/events/v2_money_management_outbound_payment_updated_event.rb +0 -21
  484. data/lib/stripe/events/v2_money_management_outbound_transfer_canceled_event.rb +0 -21
  485. data/lib/stripe/events/v2_money_management_outbound_transfer_created_event.rb +0 -21
  486. data/lib/stripe/events/v2_money_management_outbound_transfer_failed_event.rb +0 -21
  487. data/lib/stripe/events/v2_money_management_outbound_transfer_posted_event.rb +0 -21
  488. data/lib/stripe/events/v2_money_management_outbound_transfer_returned_event.rb +0 -21
  489. data/lib/stripe/events/v2_money_management_outbound_transfer_updated_event.rb +0 -21
  490. data/lib/stripe/events/v2_money_management_received_credit_available_event.rb +0 -23
  491. data/lib/stripe/events/v2_money_management_received_credit_failed_event.rb +0 -21
  492. data/lib/stripe/events/v2_money_management_received_credit_returned_event.rb +0 -21
  493. data/lib/stripe/events/v2_money_management_received_credit_succeeded_event.rb +0 -21
  494. data/lib/stripe/events/v2_money_management_received_debit_canceled_event.rb +0 -21
  495. data/lib/stripe/events/v2_money_management_received_debit_failed_event.rb +0 -21
  496. data/lib/stripe/events/v2_money_management_received_debit_pending_event.rb +0 -21
  497. data/lib/stripe/events/v2_money_management_received_debit_succeeded_event.rb +0 -21
  498. data/lib/stripe/events/v2_money_management_received_debit_updated_event.rb +0 -21
  499. data/lib/stripe/events/v2_money_management_transaction_created_event.rb +0 -21
  500. data/lib/stripe/events/v2_money_management_transaction_updated_event.rb +0 -21
  501. data/lib/stripe/events/v2_off_session_payment_requires_capture_event.rb +0 -21
  502. data/lib/stripe/events/v2_payments_off_session_payment_authorization_attempt_failed_event.rb +0 -21
  503. data/lib/stripe/events/v2_payments_off_session_payment_authorization_attempt_started_event.rb +0 -21
  504. data/lib/stripe/events/v2_payments_off_session_payment_canceled_event.rb +0 -21
  505. data/lib/stripe/events/v2_payments_off_session_payment_created_event.rb +0 -21
  506. data/lib/stripe/events/v2_payments_off_session_payment_failed_event.rb +0 -21
  507. data/lib/stripe/events/v2_payments_off_session_payment_succeeded_event.rb +0 -21
  508. data/lib/stripe/resources/account_notice.rb +0 -123
  509. data/lib/stripe/resources/balance_settings.rb +0 -105
  510. data/lib/stripe/resources/capital/financing_offer.rb +0 -179
  511. data/lib/stripe/resources/capital/financing_summary.rb +0 -55
  512. data/lib/stripe/resources/capital/financing_transaction.rb +0 -114
  513. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -27
  514. data/lib/stripe/resources/financial_connections/institution.rb +0 -92
  515. data/lib/stripe/resources/fx_quote.rb +0 -184
  516. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -602
  517. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +0 -82
  518. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +0 -86
  519. data/lib/stripe/resources/issuing/settlement.rb +0 -53
  520. data/lib/stripe/resources/margin.rb +0 -115
  521. data/lib/stripe/resources/order.rb +0 -2806
  522. data/lib/stripe/resources/payment_attempt_record.rb +0 -1086
  523. data/lib/stripe/resources/payment_intent_amount_details_line_item.rb +0 -72
  524. data/lib/stripe/resources/payment_record.rb +0 -1615
  525. data/lib/stripe/resources/privacy/redaction_job.rb +0 -298
  526. data/lib/stripe/resources/privacy/redaction_job_validation_error.rb +0 -33
  527. data/lib/stripe/resources/quote_line.rb +0 -274
  528. data/lib/stripe/resources/quote_preview_invoice.rb +0 -663
  529. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -364
  530. data/lib/stripe/resources/tax/association.rb +0 -66
  531. data/lib/stripe/resources/tax/form.rb +0 -211
  532. data/lib/stripe/resources/terminal/reader_collected_data.rb +0 -31
  533. data/lib/stripe/resources/v2/core/account.rb +0 -1746
  534. data/lib/stripe/resources/v2/core/account_link.rb +0 -56
  535. data/lib/stripe/resources/v2/core/person.rb +0 -276
  536. data/lib/stripe/resources/v2/core/vault/gb_bank_account.rb +0 -74
  537. data/lib/stripe/resources/v2/core/vault/us_bank_account.rb +0 -39
  538. data/lib/stripe/resources/v2/financial_address_credit_simulation.rb +0 -20
  539. data/lib/stripe/resources/v2/financial_address_generated_microdeposits.rb +0 -22
  540. data/lib/stripe/resources/v2/money_management/adjustment.rb +0 -51
  541. data/lib/stripe/resources/v2/money_management/financial_account.rb +0 -58
  542. data/lib/stripe/resources/v2/money_management/financial_address.rb +0 -68
  543. data/lib/stripe/resources/v2/money_management/inbound_transfer.rb +0 -94
  544. data/lib/stripe/resources/v2/money_management/outbound_payment.rb +0 -129
  545. data/lib/stripe/resources/v2/money_management/outbound_payment_quote.rb +0 -82
  546. data/lib/stripe/resources/v2/money_management/outbound_setup_intent.rb +0 -45
  547. data/lib/stripe/resources/v2/money_management/outbound_transfer.rb +0 -117
  548. data/lib/stripe/resources/v2/money_management/payout_method.rb +0 -75
  549. data/lib/stripe/resources/v2/money_management/payout_methods_bank_account_spec.rb +0 -49
  550. data/lib/stripe/resources/v2/money_management/received_credit.rb +0 -116
  551. data/lib/stripe/resources/v2/money_management/received_debit.rb +0 -84
  552. data/lib/stripe/resources/v2/money_management/transaction.rb +0 -78
  553. data/lib/stripe/resources/v2/money_management/transaction_entry.rb +0 -68
  554. data/lib/stripe/resources/v2/payments/off_session_payment.rb +0 -74
  555. data/lib/stripe/services/account_notice_service.rb +0 -101
  556. data/lib/stripe/services/balance_settings_service.rb +0 -96
  557. data/lib/stripe/services/capital/financing_offer_service.rb +0 -112
  558. data/lib/stripe/services/capital/financing_summary_service.rb +0 -28
  559. data/lib/stripe/services/capital/financing_transaction_service.rb +0 -79
  560. data/lib/stripe/services/capital_service.rb +0 -15
  561. data/lib/stripe/services/fx_quote_service.rb +0 -123
  562. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +0 -504
  563. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +0 -66
  564. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +0 -83
  565. data/lib/stripe/services/margin_service.rb +0 -119
  566. data/lib/stripe/services/order_service.rb +0 -2236
  567. data/lib/stripe/services/payment_attempt_record_service.rb +0 -49
  568. data/lib/stripe/services/payment_record_service.rb +0 -542
  569. data/lib/stripe/services/privacy/redaction_job_service.rb +0 -240
  570. data/lib/stripe/services/privacy_service.rb +0 -13
  571. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +0 -35
  572. data/lib/stripe/services/tax/association_service.rb +0 -31
  573. data/lib/stripe/services/tax/form_service.rb +0 -100
  574. data/lib/stripe/services/terminal/reader_collected_data_service.rb +0 -28
  575. data/lib/stripe/services/v2/core/account_link_service.rb +0 -76
  576. data/lib/stripe/services/v2/core/account_service.rb +0 -4138
  577. data/lib/stripe/services/v2/core/accounts/person_service.rb +0 -1046
  578. data/lib/stripe/services/v2/core/vault/gb_bank_account_service.rb +0 -131
  579. data/lib/stripe/services/v2/core/vault/us_bank_account_service.rb +0 -107
  580. data/lib/stripe/services/v2/core/vault_service.rb +0 -18
  581. data/lib/stripe/services/v2/money_management/adjustment_service.rb +0 -74
  582. data/lib/stripe/services/v2/money_management/financial_account_service.rb +0 -43
  583. data/lib/stripe/services/v2/money_management/financial_address_service.rb +0 -81
  584. data/lib/stripe/services/v2/money_management/inbound_transfer_service.rb +0 -125
  585. data/lib/stripe/services/v2/money_management/outbound_payment_quote_service.rb +0 -95
  586. data/lib/stripe/services/v2/money_management/outbound_payment_service.rb +0 -200
  587. data/lib/stripe/services/v2/money_management/outbound_setup_intent_service.rb +0 -235
  588. data/lib/stripe/services/v2/money_management/outbound_transfer_service.rb +0 -172
  589. data/lib/stripe/services/v2/money_management/payout_method_service.rb +0 -91
  590. data/lib/stripe/services/v2/money_management/payout_methods_bank_account_spec_service.rb +0 -32
  591. data/lib/stripe/services/v2/money_management/received_credit_service.rb +0 -70
  592. data/lib/stripe/services/v2/money_management/received_debit_service.rb +0 -43
  593. data/lib/stripe/services/v2/money_management/transaction_entry_service.rb +0 -69
  594. data/lib/stripe/services/v2/money_management/transaction_service.rb +0 -73
  595. data/lib/stripe/services/v2/money_management_service.rb +0 -31
  596. data/lib/stripe/services/v2/payment_service.rb +0 -15
  597. data/lib/stripe/services/v2/payments/off_session_payment_service.rb +0 -138
  598. data/lib/stripe/services/v2/test_helper_service.rb +0 -15
  599. data/lib/stripe/services/v2/test_helpers/financial_address_service.rb +0 -49
  600. data/rbi/stripe.rbi +0 -191639
@@ -0,0 +1,3978 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ # typed: true
5
+ module Stripe
6
+ # A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments.
7
+ # For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment.
8
+ # Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow.
9
+ #
10
+ # Create a SetupIntent when you're ready to collect your customer's payment credentials.
11
+ # Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid.
12
+ # The SetupIntent transitions through multiple [statuses](https://docs.stripe.com/payments/intents#intent-statuses) as it guides
13
+ # you through the setup process.
14
+ #
15
+ # Successful SetupIntents result in payment credentials that are optimized for future payments.
16
+ # For example, cardholders in [certain regions](https://stripe.com/guides/strong-customer-authentication) might need to be run through
17
+ # [Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) during payment method collection
18
+ # to streamline later [off-session payments](https://docs.stripe.com/payments/setup-intents).
19
+ # If you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer),
20
+ # it automatically attaches the resulting payment method to that Customer after successful setup.
21
+ # We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on
22
+ # PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods.
23
+ #
24
+ # By using SetupIntents, you can reduce friction for your customers, even as regulations change over time.
25
+ #
26
+ # Related guide: [Setup Intents API](https://docs.stripe.com/payments/setup-intents)
27
+ class SetupIntent < APIResource
28
+ class AutomaticPaymentMethods < Stripe::StripeObject
29
+ # Controls whether this SetupIntent will accept redirect-based payment methods.
30
+ #
31
+ # Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/setup_intents/confirm) this SetupIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the setup.
32
+ sig { returns(String) }
33
+ attr_reader :allow_redirects
34
+ # Automatically calculates compatible payment methods
35
+ sig { returns(T.nilable(T::Boolean)) }
36
+ attr_reader :enabled
37
+ end
38
+ class LastSetupError < Stripe::StripeObject
39
+ # For card errors resulting from a card issuer decline, a short string indicating [how to proceed with an error](https://stripe.com/docs/declines#retrying-issuer-declines) if they provide one.
40
+ sig { returns(String) }
41
+ attr_reader :advice_code
42
+ # For card errors, the ID of the failed charge.
43
+ sig { returns(String) }
44
+ attr_reader :charge
45
+ # For some errors that could be handled programmatically, a short string indicating the [error code](https://stripe.com/docs/error-codes) reported.
46
+ sig { returns(String) }
47
+ attr_reader :code
48
+ # For card errors resulting from a card issuer decline, a short string indicating the [card issuer's reason for the decline](https://stripe.com/docs/declines#issuer-declines) if they provide one.
49
+ sig { returns(String) }
50
+ attr_reader :decline_code
51
+ # A URL to more information about the [error code](https://stripe.com/docs/error-codes) reported.
52
+ sig { returns(String) }
53
+ attr_reader :doc_url
54
+ # A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
55
+ sig { returns(String) }
56
+ attr_reader :message
57
+ # For card errors resulting from a card issuer decline, a 2 digit code which indicates the advice given to merchant by the card network on how to proceed with an error.
58
+ sig { returns(String) }
59
+ attr_reader :network_advice_code
60
+ # For card errors resulting from a card issuer decline, a brand specific 2, 3, or 4 digit code which indicates the reason the authorization failed.
61
+ sig { returns(String) }
62
+ attr_reader :network_decline_code
63
+ # If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
64
+ sig { returns(String) }
65
+ attr_reader :param
66
+ # A PaymentIntent guides you through the process of collecting a payment from your customer.
67
+ # We recommend that you create exactly one PaymentIntent for each order or
68
+ # customer session in your system. You can reference the PaymentIntent later to
69
+ # see the history of payment attempts for a particular session.
70
+ #
71
+ # A PaymentIntent transitions through
72
+ # [multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses)
73
+ # throughout its lifetime as it interfaces with Stripe.js to perform
74
+ # authentication flows and ultimately creates at most one successful charge.
75
+ #
76
+ # Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents)
77
+ sig { returns(Stripe::PaymentIntent) }
78
+ attr_reader :payment_intent
79
+ # PaymentMethod objects represent your customer's payment instruments.
80
+ # You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to
81
+ # Customer objects to store instrument details for future payments.
82
+ #
83
+ # Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios).
84
+ sig { returns(Stripe::PaymentMethod) }
85
+ attr_reader :payment_method
86
+ # If the error is specific to the type of payment method, the payment method type that had a problem. This field is only populated for invoice-related errors.
87
+ sig { returns(String) }
88
+ attr_reader :payment_method_type
89
+ # A URL to the request log entry in your dashboard.
90
+ sig { returns(String) }
91
+ attr_reader :request_log_url
92
+ # A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments.
93
+ # For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment.
94
+ # Later, you can use [PaymentIntents](https://stripe.com/docs/api#payment_intents) to drive the payment flow.
95
+ #
96
+ # Create a SetupIntent when you're ready to collect your customer's payment credentials.
97
+ # Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid.
98
+ # The SetupIntent transitions through multiple [statuses](https://docs.stripe.com/payments/intents#intent-statuses) as it guides
99
+ # you through the setup process.
100
+ #
101
+ # Successful SetupIntents result in payment credentials that are optimized for future payments.
102
+ # For example, cardholders in [certain regions](https://stripe.com/guides/strong-customer-authentication) might need to be run through
103
+ # [Strong Customer Authentication](https://docs.stripe.com/strong-customer-authentication) during payment method collection
104
+ # to streamline later [off-session payments](https://docs.stripe.com/payments/setup-intents).
105
+ # If you use the SetupIntent with a [Customer](https://stripe.com/docs/api#setup_intent_object-customer),
106
+ # it automatically attaches the resulting payment method to that Customer after successful setup.
107
+ # We recommend using SetupIntents or [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage) on
108
+ # PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods.
109
+ #
110
+ # By using SetupIntents, you can reduce friction for your customers, even as regulations change over time.
111
+ #
112
+ # Related guide: [Setup Intents API](https://docs.stripe.com/payments/setup-intents)
113
+ sig { returns(Stripe::SetupIntent) }
114
+ attr_reader :setup_intent
115
+ # Attribute for field source
116
+ sig { returns(T.any(Stripe::Account, Stripe::BankAccount, Stripe::Card, Stripe::Source)) }
117
+ attr_reader :source
118
+ # The type of error returned. One of `api_error`, `card_error`, `idempotency_error`, or `invalid_request_error`
119
+ sig { returns(String) }
120
+ attr_reader :type
121
+ end
122
+ class NextAction < Stripe::StripeObject
123
+ class CashappHandleRedirectOrDisplayQrCode < Stripe::StripeObject
124
+ class QrCode < Stripe::StripeObject
125
+ # The date (unix timestamp) when the QR code expires.
126
+ sig { returns(Integer) }
127
+ attr_reader :expires_at
128
+ # The image_url_png string used to render QR code
129
+ sig { returns(String) }
130
+ attr_reader :image_url_png
131
+ # The image_url_svg string used to render QR code
132
+ sig { returns(String) }
133
+ attr_reader :image_url_svg
134
+ end
135
+ # The URL to the hosted Cash App Pay instructions page, which allows customers to view the QR code, and supports QR code refreshing on expiration.
136
+ sig { returns(String) }
137
+ attr_reader :hosted_instructions_url
138
+ # The url for mobile redirect based auth
139
+ sig { returns(String) }
140
+ attr_reader :mobile_auth_url
141
+ # Attribute for field qr_code
142
+ sig { returns(QrCode) }
143
+ attr_reader :qr_code
144
+ end
145
+ class RedirectToUrl < Stripe::StripeObject
146
+ # If the customer does not exit their browser while authenticating, they will be redirected to this specified URL after completion.
147
+ sig { returns(T.nilable(String)) }
148
+ attr_reader :return_url
149
+ # The URL you must redirect your customer to in order to authenticate.
150
+ sig { returns(T.nilable(String)) }
151
+ attr_reader :url
152
+ end
153
+ class VerifyWithMicrodeposits < Stripe::StripeObject
154
+ # The timestamp when the microdeposits are expected to land.
155
+ sig { returns(Integer) }
156
+ attr_reader :arrival_date
157
+ # The URL for the hosted verification page, which allows customers to verify their bank account.
158
+ sig { returns(String) }
159
+ attr_reader :hosted_verification_url
160
+ # The type of the microdeposit sent to the customer. Used to distinguish between different verification methods.
161
+ sig { returns(T.nilable(String)) }
162
+ attr_reader :microdeposit_type
163
+ end
164
+ # Attribute for field cashapp_handle_redirect_or_display_qr_code
165
+ sig { returns(CashappHandleRedirectOrDisplayQrCode) }
166
+ attr_reader :cashapp_handle_redirect_or_display_qr_code
167
+ # Attribute for field redirect_to_url
168
+ sig { returns(RedirectToUrl) }
169
+ attr_reader :redirect_to_url
170
+ # Type of the next action to perform. Refer to the other child attributes under `next_action` for available values. Examples include: `redirect_to_url`, `use_stripe_sdk`, `alipay_handle_redirect`, `oxxo_display_details`, or `verify_with_microdeposits`.
171
+ sig { returns(String) }
172
+ attr_reader :type
173
+ # When confirming a SetupIntent with Stripe.js, Stripe.js depends on the contents of this dictionary to invoke authentication flows. The shape of the contents is subject to change and is only intended to be used by Stripe.js.
174
+ sig { returns(T::Hash[String, T.untyped]) }
175
+ attr_reader :use_stripe_sdk
176
+ # Attribute for field verify_with_microdeposits
177
+ sig { returns(VerifyWithMicrodeposits) }
178
+ attr_reader :verify_with_microdeposits
179
+ end
180
+ class PaymentMethodConfigurationDetails < Stripe::StripeObject
181
+ # ID of the payment method configuration used.
182
+ sig { returns(String) }
183
+ attr_reader :id
184
+ # ID of the parent payment method configuration used.
185
+ sig { returns(T.nilable(String)) }
186
+ attr_reader :parent
187
+ end
188
+ class PaymentMethodOptions < Stripe::StripeObject
189
+ class AcssDebit < Stripe::StripeObject
190
+ class MandateOptions < Stripe::StripeObject
191
+ # A URL for custom mandate text
192
+ sig { returns(String) }
193
+ attr_reader :custom_mandate_url
194
+ # List of Stripe products where this mandate can be selected automatically.
195
+ sig { returns(T::Array[String]) }
196
+ attr_reader :default_for
197
+ # Description of the interval. Only required if the 'payment_schedule' parameter is 'interval' or 'combined'.
198
+ sig { returns(T.nilable(String)) }
199
+ attr_reader :interval_description
200
+ # Payment schedule for the mandate.
201
+ sig { returns(T.nilable(String)) }
202
+ attr_reader :payment_schedule
203
+ # Transaction type of the mandate.
204
+ sig { returns(T.nilable(String)) }
205
+ attr_reader :transaction_type
206
+ end
207
+ # Currency supported by the bank account
208
+ sig { returns(T.nilable(String)) }
209
+ attr_reader :currency
210
+ # Attribute for field mandate_options
211
+ sig { returns(MandateOptions) }
212
+ attr_reader :mandate_options
213
+ # Bank account verification method.
214
+ sig { returns(String) }
215
+ attr_reader :verification_method
216
+ end
217
+ class AmazonPay < Stripe::StripeObject; end
218
+ class BacsDebit < Stripe::StripeObject
219
+ class MandateOptions < Stripe::StripeObject
220
+ # Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'.
221
+ sig { returns(String) }
222
+ attr_reader :reference_prefix
223
+ end
224
+ # Attribute for field mandate_options
225
+ sig { returns(MandateOptions) }
226
+ attr_reader :mandate_options
227
+ end
228
+ class Card < Stripe::StripeObject
229
+ class MandateOptions < Stripe::StripeObject
230
+ # Amount to be charged for future payments.
231
+ sig { returns(Integer) }
232
+ attr_reader :amount
233
+ # One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.
234
+ sig { returns(String) }
235
+ attr_reader :amount_type
236
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
237
+ sig { returns(String) }
238
+ attr_reader :currency
239
+ # A description of the mandate or subscription that is meant to be displayed to the customer.
240
+ sig { returns(T.nilable(String)) }
241
+ attr_reader :description
242
+ # End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date.
243
+ sig { returns(T.nilable(Integer)) }
244
+ attr_reader :end_date
245
+ # Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.
246
+ sig { returns(String) }
247
+ attr_reader :interval
248
+ # The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`.
249
+ sig { returns(T.nilable(Integer)) }
250
+ attr_reader :interval_count
251
+ # Unique identifier for the mandate or subscription.
252
+ sig { returns(String) }
253
+ attr_reader :reference
254
+ # Start date of the mandate or subscription. Start date should not be lesser than yesterday.
255
+ sig { returns(Integer) }
256
+ attr_reader :start_date
257
+ # Specifies the type of mandates supported. Possible values are `india`.
258
+ sig { returns(T.nilable(T::Array[String])) }
259
+ attr_reader :supported_types
260
+ end
261
+ # Configuration options for setting up an eMandate for cards issued in India.
262
+ sig { returns(T.nilable(MandateOptions)) }
263
+ attr_reader :mandate_options
264
+ # Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the setup intent. Can be only set confirm-time.
265
+ sig { returns(T.nilable(String)) }
266
+ attr_reader :network
267
+ # We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
268
+ sig { returns(T.nilable(String)) }
269
+ attr_reader :request_three_d_secure
270
+ end
271
+ class CardPresent < Stripe::StripeObject; end
272
+ class Klarna < Stripe::StripeObject
273
+ # The currency of the setup intent. Three letter ISO currency code.
274
+ sig { returns(T.nilable(String)) }
275
+ attr_reader :currency
276
+ # Preferred locale of the Klarna checkout page that the customer is redirected to.
277
+ sig { returns(T.nilable(String)) }
278
+ attr_reader :preferred_locale
279
+ end
280
+ class Link < Stripe::StripeObject
281
+ # [Deprecated] This is a legacy parameter that no longer has any function.
282
+ sig { returns(T.nilable(String)) }
283
+ attr_reader :persistent_token
284
+ end
285
+ class Paypal < Stripe::StripeObject
286
+ # The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer.
287
+ sig { returns(T.nilable(String)) }
288
+ attr_reader :billing_agreement_id
289
+ end
290
+ class SepaDebit < Stripe::StripeObject
291
+ class MandateOptions < Stripe::StripeObject
292
+ # Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'.
293
+ sig { returns(String) }
294
+ attr_reader :reference_prefix
295
+ end
296
+ # Attribute for field mandate_options
297
+ sig { returns(MandateOptions) }
298
+ attr_reader :mandate_options
299
+ end
300
+ class UsBankAccount < Stripe::StripeObject
301
+ class FinancialConnections < Stripe::StripeObject
302
+ class Filters < Stripe::StripeObject
303
+ # The account subcategories to use to filter for possible accounts to link. Valid subcategories are `checking` and `savings`.
304
+ sig { returns(T::Array[String]) }
305
+ attr_reader :account_subcategories
306
+ end
307
+ # Attribute for field filters
308
+ sig { returns(Filters) }
309
+ attr_reader :filters
310
+ # The list of permissions to request. The `payment_method` permission must be included.
311
+ sig { returns(T::Array[String]) }
312
+ attr_reader :permissions
313
+ # Data features requested to be retrieved upon account creation.
314
+ sig { returns(T.nilable(T::Array[String])) }
315
+ attr_reader :prefetch
316
+ # For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
317
+ sig { returns(String) }
318
+ attr_reader :return_url
319
+ end
320
+ class MandateOptions < Stripe::StripeObject
321
+ # Mandate collection method
322
+ sig { returns(String) }
323
+ attr_reader :collection_method
324
+ end
325
+ # Attribute for field financial_connections
326
+ sig { returns(FinancialConnections) }
327
+ attr_reader :financial_connections
328
+ # Attribute for field mandate_options
329
+ sig { returns(MandateOptions) }
330
+ attr_reader :mandate_options
331
+ # Bank account verification method.
332
+ sig { returns(String) }
333
+ attr_reader :verification_method
334
+ end
335
+ # Attribute for field acss_debit
336
+ sig { returns(AcssDebit) }
337
+ attr_reader :acss_debit
338
+ # Attribute for field amazon_pay
339
+ sig { returns(AmazonPay) }
340
+ attr_reader :amazon_pay
341
+ # Attribute for field bacs_debit
342
+ sig { returns(BacsDebit) }
343
+ attr_reader :bacs_debit
344
+ # Attribute for field card
345
+ sig { returns(Card) }
346
+ attr_reader :card
347
+ # Attribute for field card_present
348
+ sig { returns(CardPresent) }
349
+ attr_reader :card_present
350
+ # Attribute for field klarna
351
+ sig { returns(Klarna) }
352
+ attr_reader :klarna
353
+ # Attribute for field link
354
+ sig { returns(Link) }
355
+ attr_reader :link
356
+ # Attribute for field paypal
357
+ sig { returns(Paypal) }
358
+ attr_reader :paypal
359
+ # Attribute for field sepa_debit
360
+ sig { returns(SepaDebit) }
361
+ attr_reader :sepa_debit
362
+ # Attribute for field us_bank_account
363
+ sig { returns(UsBankAccount) }
364
+ attr_reader :us_bank_account
365
+ end
366
+ # ID of the Connect application that created the SetupIntent.
367
+ sig { returns(T.nilable(T.any(String, Stripe::Application))) }
368
+ attr_reader :application
369
+ # If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.
370
+ #
371
+ # It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.
372
+ sig { returns(T::Boolean) }
373
+ attr_reader :attach_to_self
374
+ # Settings for dynamic payment methods compatible with this Setup Intent
375
+ sig { returns(T.nilable(AutomaticPaymentMethods)) }
376
+ attr_reader :automatic_payment_methods
377
+ # Reason for cancellation of this SetupIntent, one of `abandoned`, `requested_by_customer`, or `duplicate`.
378
+ sig { returns(T.nilable(String)) }
379
+ attr_reader :cancellation_reason
380
+ # The client secret of this SetupIntent. Used for client-side retrieval using a publishable key.
381
+ #
382
+ # The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.
383
+ sig { returns(T.nilable(String)) }
384
+ attr_reader :client_secret
385
+ # Time at which the object was created. Measured in seconds since the Unix epoch.
386
+ sig { returns(Integer) }
387
+ attr_reader :created
388
+ # ID of the Customer this SetupIntent belongs to, if one exists.
389
+ #
390
+ # If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
391
+ sig { returns(T.nilable(T.any(String, Stripe::Customer))) }
392
+ attr_reader :customer
393
+ # An arbitrary string attached to the object. Often useful for displaying to users.
394
+ sig { returns(T.nilable(String)) }
395
+ attr_reader :description
396
+ # Indicates the directions of money movement for which this payment method is intended to be used.
397
+ #
398
+ # Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.
399
+ sig { returns(T.nilable(T::Array[String])) }
400
+ attr_reader :flow_directions
401
+ # Unique identifier for the object.
402
+ sig { returns(String) }
403
+ attr_reader :id
404
+ # The error encountered in the previous SetupIntent confirmation.
405
+ sig { returns(T.nilable(LastSetupError)) }
406
+ attr_reader :last_setup_error
407
+ # The most recent SetupAttempt for this SetupIntent.
408
+ sig { returns(T.nilable(T.any(String, Stripe::SetupAttempt))) }
409
+ attr_reader :latest_attempt
410
+ # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
411
+ sig { returns(T::Boolean) }
412
+ attr_reader :livemode
413
+ # ID of the multi use Mandate generated by the SetupIntent.
414
+ sig { returns(T.nilable(T.any(String, Stripe::Mandate))) }
415
+ attr_reader :mandate
416
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
417
+ sig { returns(T.nilable(T::Hash[String, String])) }
418
+ attr_reader :metadata
419
+ # If present, this property tells you what actions you need to take in order for your customer to continue payment setup.
420
+ sig { returns(T.nilable(NextAction)) }
421
+ attr_reader :next_action
422
+ # String representing the object's type. Objects of the same type share the same value.
423
+ sig { returns(String) }
424
+ attr_reader :object
425
+ # The account (if any) for which the setup is intended.
426
+ sig { returns(T.nilable(T.any(String, Stripe::Account))) }
427
+ attr_reader :on_behalf_of
428
+ # ID of the payment method used with this SetupIntent. If the payment method is `card_present` and isn't a digital wallet, then the [generated_card](https://docs.stripe.com/api/setup_attempts/object#setup_attempt_object-payment_method_details-card_present-generated_card) associated with the `latest_attempt` is attached to the Customer instead.
429
+ sig { returns(T.nilable(T.any(String, Stripe::PaymentMethod))) }
430
+ attr_reader :payment_method
431
+ # Information about the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) used for this Setup Intent.
432
+ sig { returns(T.nilable(PaymentMethodConfigurationDetails)) }
433
+ attr_reader :payment_method_configuration_details
434
+ # Payment method-specific configuration for this SetupIntent.
435
+ sig { returns(T.nilable(PaymentMethodOptions)) }
436
+ attr_reader :payment_method_options
437
+ # The list of payment method types (e.g. card) that this SetupIntent is allowed to set up. A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type).
438
+ sig { returns(T::Array[String]) }
439
+ attr_reader :payment_method_types
440
+ # ID of the single_use Mandate generated by the SetupIntent.
441
+ sig { returns(T.nilable(T.any(String, Stripe::Mandate))) }
442
+ attr_reader :single_use_mandate
443
+ # [Status](https://stripe.com/docs/payments/intents#intent-statuses) of this SetupIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `canceled`, or `succeeded`.
444
+ sig { returns(String) }
445
+ attr_reader :status
446
+ # Indicates how the payment method is intended to be used in the future.
447
+ #
448
+ # Use `on_session` if you intend to only reuse the payment method when the customer is in your checkout flow. Use `off_session` if your customer may or may not be in your checkout flow. If not provided, this value defaults to `off_session`.
449
+ sig { returns(String) }
450
+ attr_reader :usage
451
+ class ListParams < Stripe::RequestParams
452
+ class Created < Stripe::RequestParams
453
+ # Minimum value to filter by (exclusive)
454
+ sig { returns(T.nilable(Integer)) }
455
+ attr_accessor :gt
456
+ # Minimum value to filter by (inclusive)
457
+ sig { returns(T.nilable(Integer)) }
458
+ attr_accessor :gte
459
+ # Maximum value to filter by (exclusive)
460
+ sig { returns(T.nilable(Integer)) }
461
+ attr_accessor :lt
462
+ # Maximum value to filter by (inclusive)
463
+ sig { returns(T.nilable(Integer)) }
464
+ attr_accessor :lte
465
+ sig {
466
+ params(gt: T.nilable(Integer), gte: T.nilable(Integer), lt: T.nilable(Integer), lte: T.nilable(Integer)).void
467
+ }
468
+ def initialize(gt: nil, gte: nil, lt: nil, lte: nil); end
469
+ end
470
+ # If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.
471
+ #
472
+ # It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.
473
+ sig { returns(T.nilable(T::Boolean)) }
474
+ attr_accessor :attach_to_self
475
+ # A filter on the list, based on the object `created` field. The value can be a string with an integer Unix timestamp, or it can be a dictionary with a number of different query options.
476
+ sig { returns(T.nilable(T.any(::Stripe::SetupIntent::ListParams::Created, Integer))) }
477
+ attr_accessor :created
478
+ # Only return SetupIntents for the customer specified by this customer ID.
479
+ sig { returns(T.nilable(String)) }
480
+ attr_accessor :customer
481
+ # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list.
482
+ sig { returns(T.nilable(String)) }
483
+ attr_accessor :ending_before
484
+ # Specifies which fields in the response should be expanded.
485
+ sig { returns(T.nilable(T::Array[String])) }
486
+ attr_accessor :expand
487
+ # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
488
+ sig { returns(T.nilable(Integer)) }
489
+ attr_accessor :limit
490
+ # Only return SetupIntents that associate with the specified payment method.
491
+ sig { returns(T.nilable(String)) }
492
+ attr_accessor :payment_method
493
+ # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list.
494
+ sig { returns(T.nilable(String)) }
495
+ attr_accessor :starting_after
496
+ sig {
497
+ params(attach_to_self: T.nilable(T::Boolean), created: T.nilable(T.any(::Stripe::SetupIntent::ListParams::Created, Integer)), customer: T.nilable(String), ending_before: T.nilable(String), expand: T.nilable(T::Array[String]), limit: T.nilable(Integer), payment_method: T.nilable(String), starting_after: T.nilable(String)).void
498
+ }
499
+ def initialize(
500
+ attach_to_self: nil,
501
+ created: nil,
502
+ customer: nil,
503
+ ending_before: nil,
504
+ expand: nil,
505
+ limit: nil,
506
+ payment_method: nil,
507
+ starting_after: nil
508
+ ); end
509
+ end
510
+ class CreateParams < Stripe::RequestParams
511
+ class AutomaticPaymentMethods < Stripe::RequestParams
512
+ # Controls whether this SetupIntent will accept redirect-based payment methods.
513
+ #
514
+ # Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To [confirm](https://stripe.com/docs/api/setup_intents/confirm) this SetupIntent, you may be required to provide a `return_url` to redirect customers back to your site after they authenticate or complete the setup.
515
+ sig { returns(T.nilable(String)) }
516
+ attr_accessor :allow_redirects
517
+ # Whether this feature is enabled.
518
+ sig { returns(T::Boolean) }
519
+ attr_accessor :enabled
520
+ sig { params(allow_redirects: T.nilable(String), enabled: T::Boolean).void }
521
+ def initialize(allow_redirects: nil, enabled: nil); end
522
+ end
523
+ class MandateData < Stripe::RequestParams
524
+ class CustomerAcceptance < Stripe::RequestParams
525
+ class Offline < Stripe::RequestParams; end
526
+ class Online < Stripe::RequestParams
527
+ # The IP address from which the Mandate was accepted by the customer.
528
+ sig { returns(String) }
529
+ attr_accessor :ip_address
530
+ # The user agent of the browser from which the Mandate was accepted by the customer.
531
+ sig { returns(String) }
532
+ attr_accessor :user_agent
533
+ sig { params(ip_address: String, user_agent: String).void }
534
+ def initialize(ip_address: nil, user_agent: nil); end
535
+ end
536
+ # The time at which the customer accepted the Mandate.
537
+ sig { returns(T.nilable(Integer)) }
538
+ attr_accessor :accepted_at
539
+ # If this is a Mandate accepted offline, this hash contains details about the offline acceptance.
540
+ sig {
541
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::MandateData::CustomerAcceptance::Offline))
542
+ }
543
+ attr_accessor :offline
544
+ # If this is a Mandate accepted online, this hash contains details about the online acceptance.
545
+ sig {
546
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::MandateData::CustomerAcceptance::Online))
547
+ }
548
+ attr_accessor :online
549
+ # The type of customer acceptance information included with the Mandate. One of `online` or `offline`.
550
+ sig { returns(String) }
551
+ attr_accessor :type
552
+ sig {
553
+ params(accepted_at: T.nilable(Integer), offline: T.nilable(::Stripe::SetupIntent::CreateParams::MandateData::CustomerAcceptance::Offline), online: T.nilable(::Stripe::SetupIntent::CreateParams::MandateData::CustomerAcceptance::Online), type: String).void
554
+ }
555
+ def initialize(accepted_at: nil, offline: nil, online: nil, type: nil); end
556
+ end
557
+ # This hash contains details about the customer acceptance of the Mandate.
558
+ sig { returns(::Stripe::SetupIntent::CreateParams::MandateData::CustomerAcceptance) }
559
+ attr_accessor :customer_acceptance
560
+ sig {
561
+ params(customer_acceptance: ::Stripe::SetupIntent::CreateParams::MandateData::CustomerAcceptance).void
562
+ }
563
+ def initialize(customer_acceptance: nil); end
564
+ end
565
+ class PaymentMethodData < Stripe::RequestParams
566
+ class AcssDebit < Stripe::RequestParams
567
+ # Customer's bank account number.
568
+ sig { returns(String) }
569
+ attr_accessor :account_number
570
+ # Institution number of the customer's bank.
571
+ sig { returns(String) }
572
+ attr_accessor :institution_number
573
+ # Transit number of the customer's bank.
574
+ sig { returns(String) }
575
+ attr_accessor :transit_number
576
+ sig {
577
+ params(account_number: String, institution_number: String, transit_number: String).void
578
+ }
579
+ def initialize(account_number: nil, institution_number: nil, transit_number: nil); end
580
+ end
581
+ class Affirm < Stripe::RequestParams; end
582
+ class AfterpayClearpay < Stripe::RequestParams; end
583
+ class Alipay < Stripe::RequestParams; end
584
+ class Alma < Stripe::RequestParams; end
585
+ class AmazonPay < Stripe::RequestParams; end
586
+ class AuBecsDebit < Stripe::RequestParams
587
+ # The account number for the bank account.
588
+ sig { returns(String) }
589
+ attr_accessor :account_number
590
+ # Bank-State-Branch number of the bank account.
591
+ sig { returns(String) }
592
+ attr_accessor :bsb_number
593
+ sig { params(account_number: String, bsb_number: String).void }
594
+ def initialize(account_number: nil, bsb_number: nil); end
595
+ end
596
+ class BacsDebit < Stripe::RequestParams
597
+ # Account number of the bank account that the funds will be debited from.
598
+ sig { returns(T.nilable(String)) }
599
+ attr_accessor :account_number
600
+ # Sort code of the bank account. (e.g., `10-20-30`)
601
+ sig { returns(T.nilable(String)) }
602
+ attr_accessor :sort_code
603
+ sig { params(account_number: T.nilable(String), sort_code: T.nilable(String)).void }
604
+ def initialize(account_number: nil, sort_code: nil); end
605
+ end
606
+ class Bancontact < Stripe::RequestParams; end
607
+ class Billie < Stripe::RequestParams; end
608
+ class BillingDetails < Stripe::RequestParams
609
+ class Address < Stripe::RequestParams
610
+ # City, district, suburb, town, or village.
611
+ sig { returns(T.nilable(String)) }
612
+ attr_accessor :city
613
+ # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
614
+ sig { returns(T.nilable(String)) }
615
+ attr_accessor :country
616
+ # Address line 1 (e.g., street, PO Box, or company name).
617
+ sig { returns(T.nilable(String)) }
618
+ attr_accessor :line1
619
+ # Address line 2 (e.g., apartment, suite, unit, or building).
620
+ sig { returns(T.nilable(String)) }
621
+ attr_accessor :line2
622
+ # ZIP or postal code.
623
+ sig { returns(T.nilable(String)) }
624
+ attr_accessor :postal_code
625
+ # State, county, province, or region.
626
+ sig { returns(T.nilable(String)) }
627
+ attr_accessor :state
628
+ sig {
629
+ params(city: T.nilable(String), country: T.nilable(String), line1: T.nilable(String), line2: T.nilable(String), postal_code: T.nilable(String), state: T.nilable(String)).void
630
+ }
631
+ def initialize(
632
+ city: nil,
633
+ country: nil,
634
+ line1: nil,
635
+ line2: nil,
636
+ postal_code: nil,
637
+ state: nil
638
+ ); end
639
+ end
640
+ # Billing address.
641
+ sig {
642
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::CreateParams::PaymentMethodData::BillingDetails::Address))))
643
+ }
644
+ attr_accessor :address
645
+ # Email address.
646
+ sig { returns(T.nilable(T.nilable(String))) }
647
+ attr_accessor :email
648
+ # Full name.
649
+ sig { returns(T.nilable(T.nilable(String))) }
650
+ attr_accessor :name
651
+ # Billing phone number (including extension).
652
+ sig { returns(T.nilable(T.nilable(String))) }
653
+ attr_accessor :phone
654
+ # Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers.
655
+ sig { returns(T.nilable(String)) }
656
+ attr_accessor :tax_id
657
+ sig {
658
+ params(address: T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::CreateParams::PaymentMethodData::BillingDetails::Address))), email: T.nilable(T.nilable(String)), name: T.nilable(T.nilable(String)), phone: T.nilable(T.nilable(String)), tax_id: T.nilable(String)).void
659
+ }
660
+ def initialize(address: nil, email: nil, name: nil, phone: nil, tax_id: nil); end
661
+ end
662
+ class Blik < Stripe::RequestParams; end
663
+ class Boleto < Stripe::RequestParams
664
+ # The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers)
665
+ sig { returns(String) }
666
+ attr_accessor :tax_id
667
+ sig { params(tax_id: String).void }
668
+ def initialize(tax_id: nil); end
669
+ end
670
+ class Cashapp < Stripe::RequestParams; end
671
+ class Crypto < Stripe::RequestParams; end
672
+ class CustomerBalance < Stripe::RequestParams; end
673
+ class Eps < Stripe::RequestParams
674
+ # The customer's bank.
675
+ sig { returns(T.nilable(String)) }
676
+ attr_accessor :bank
677
+ sig { params(bank: T.nilable(String)).void }
678
+ def initialize(bank: nil); end
679
+ end
680
+ class Fpx < Stripe::RequestParams
681
+ # Account holder type for FPX transaction
682
+ sig { returns(T.nilable(String)) }
683
+ attr_accessor :account_holder_type
684
+ # The customer's bank.
685
+ sig { returns(String) }
686
+ attr_accessor :bank
687
+ sig { params(account_holder_type: T.nilable(String), bank: String).void }
688
+ def initialize(account_holder_type: nil, bank: nil); end
689
+ end
690
+ class Giropay < Stripe::RequestParams; end
691
+ class Grabpay < Stripe::RequestParams; end
692
+ class Ideal < Stripe::RequestParams
693
+ # The customer's bank. Only use this parameter for existing customers. Don't use it for new customers.
694
+ sig { returns(T.nilable(String)) }
695
+ attr_accessor :bank
696
+ sig { params(bank: T.nilable(String)).void }
697
+ def initialize(bank: nil); end
698
+ end
699
+ class InteracPresent < Stripe::RequestParams; end
700
+ class KakaoPay < Stripe::RequestParams; end
701
+ class Klarna < Stripe::RequestParams
702
+ class Dob < Stripe::RequestParams
703
+ # The day of birth, between 1 and 31.
704
+ sig { returns(Integer) }
705
+ attr_accessor :day
706
+ # The month of birth, between 1 and 12.
707
+ sig { returns(Integer) }
708
+ attr_accessor :month
709
+ # The four-digit year of birth.
710
+ sig { returns(Integer) }
711
+ attr_accessor :year
712
+ sig { params(day: Integer, month: Integer, year: Integer).void }
713
+ def initialize(day: nil, month: nil, year: nil); end
714
+ end
715
+ # Customer's date of birth
716
+ sig {
717
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Klarna::Dob))
718
+ }
719
+ attr_accessor :dob
720
+ sig {
721
+ params(dob: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Klarna::Dob)).void
722
+ }
723
+ def initialize(dob: nil); end
724
+ end
725
+ class Konbini < Stripe::RequestParams; end
726
+ class KrCard < Stripe::RequestParams; end
727
+ class Link < Stripe::RequestParams; end
728
+ class Mobilepay < Stripe::RequestParams; end
729
+ class Multibanco < Stripe::RequestParams; end
730
+ class NaverPay < Stripe::RequestParams
731
+ # Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`.
732
+ sig { returns(T.nilable(String)) }
733
+ attr_accessor :funding
734
+ sig { params(funding: T.nilable(String)).void }
735
+ def initialize(funding: nil); end
736
+ end
737
+ class NzBankAccount < Stripe::RequestParams
738
+ # The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod’s billing details.
739
+ sig { returns(T.nilable(String)) }
740
+ attr_accessor :account_holder_name
741
+ # The account number for the bank account.
742
+ sig { returns(String) }
743
+ attr_accessor :account_number
744
+ # The numeric code for the bank account's bank.
745
+ sig { returns(String) }
746
+ attr_accessor :bank_code
747
+ # The numeric code for the bank account's bank branch.
748
+ sig { returns(String) }
749
+ attr_accessor :branch_code
750
+ # Attribute for param field reference
751
+ sig { returns(T.nilable(String)) }
752
+ attr_accessor :reference
753
+ # The suffix of the bank account number.
754
+ sig { returns(String) }
755
+ attr_accessor :suffix
756
+ sig {
757
+ params(account_holder_name: T.nilable(String), account_number: String, bank_code: String, branch_code: String, reference: T.nilable(String), suffix: String).void
758
+ }
759
+ def initialize(
760
+ account_holder_name: nil,
761
+ account_number: nil,
762
+ bank_code: nil,
763
+ branch_code: nil,
764
+ reference: nil,
765
+ suffix: nil
766
+ ); end
767
+ end
768
+ class Oxxo < Stripe::RequestParams; end
769
+ class P24 < Stripe::RequestParams
770
+ # The customer's bank.
771
+ sig { returns(T.nilable(String)) }
772
+ attr_accessor :bank
773
+ sig { params(bank: T.nilable(String)).void }
774
+ def initialize(bank: nil); end
775
+ end
776
+ class PayByBank < Stripe::RequestParams; end
777
+ class Payco < Stripe::RequestParams; end
778
+ class Paynow < Stripe::RequestParams; end
779
+ class Paypal < Stripe::RequestParams; end
780
+ class Pix < Stripe::RequestParams; end
781
+ class Promptpay < Stripe::RequestParams; end
782
+ class RadarOptions < Stripe::RequestParams
783
+ # A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
784
+ sig { returns(T.nilable(String)) }
785
+ attr_accessor :session
786
+ sig { params(session: T.nilable(String)).void }
787
+ def initialize(session: nil); end
788
+ end
789
+ class RevolutPay < Stripe::RequestParams; end
790
+ class SamsungPay < Stripe::RequestParams; end
791
+ class Satispay < Stripe::RequestParams; end
792
+ class SepaDebit < Stripe::RequestParams
793
+ # IBAN of the bank account.
794
+ sig { returns(String) }
795
+ attr_accessor :iban
796
+ sig { params(iban: String).void }
797
+ def initialize(iban: nil); end
798
+ end
799
+ class Sofort < Stripe::RequestParams
800
+ # Two-letter ISO code representing the country the bank account is located in.
801
+ sig { returns(String) }
802
+ attr_accessor :country
803
+ sig { params(country: String).void }
804
+ def initialize(country: nil); end
805
+ end
806
+ class Swish < Stripe::RequestParams; end
807
+ class Twint < Stripe::RequestParams; end
808
+ class UsBankAccount < Stripe::RequestParams
809
+ # Account holder type: individual or company.
810
+ sig { returns(T.nilable(String)) }
811
+ attr_accessor :account_holder_type
812
+ # Account number of the bank account.
813
+ sig { returns(T.nilable(String)) }
814
+ attr_accessor :account_number
815
+ # Account type: checkings or savings. Defaults to checking if omitted.
816
+ sig { returns(T.nilable(String)) }
817
+ attr_accessor :account_type
818
+ # The ID of a Financial Connections Account to use as a payment method.
819
+ sig { returns(T.nilable(String)) }
820
+ attr_accessor :financial_connections_account
821
+ # Routing number of the bank account.
822
+ sig { returns(T.nilable(String)) }
823
+ attr_accessor :routing_number
824
+ sig {
825
+ params(account_holder_type: T.nilable(String), account_number: T.nilable(String), account_type: T.nilable(String), financial_connections_account: T.nilable(String), routing_number: T.nilable(String)).void
826
+ }
827
+ def initialize(
828
+ account_holder_type: nil,
829
+ account_number: nil,
830
+ account_type: nil,
831
+ financial_connections_account: nil,
832
+ routing_number: nil
833
+ ); end
834
+ end
835
+ class WechatPay < Stripe::RequestParams; end
836
+ class Zip < Stripe::RequestParams; end
837
+ # If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
838
+ sig {
839
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::AcssDebit))
840
+ }
841
+ attr_accessor :acss_debit
842
+ # If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
843
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Affirm)) }
844
+ attr_accessor :affirm
845
+ # If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
846
+ sig {
847
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::AfterpayClearpay))
848
+ }
849
+ attr_accessor :afterpay_clearpay
850
+ # If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
851
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Alipay)) }
852
+ attr_accessor :alipay
853
+ # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`.
854
+ sig { returns(T.nilable(String)) }
855
+ attr_accessor :allow_redisplay
856
+ # If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
857
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Alma)) }
858
+ attr_accessor :alma
859
+ # If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method.
860
+ sig {
861
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::AmazonPay))
862
+ }
863
+ attr_accessor :amazon_pay
864
+ # If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
865
+ sig {
866
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::AuBecsDebit))
867
+ }
868
+ attr_accessor :au_becs_debit
869
+ # If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
870
+ sig {
871
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::BacsDebit))
872
+ }
873
+ attr_accessor :bacs_debit
874
+ # If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
875
+ sig {
876
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Bancontact))
877
+ }
878
+ attr_accessor :bancontact
879
+ # If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method.
880
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Billie)) }
881
+ attr_accessor :billie
882
+ # Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
883
+ sig {
884
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::BillingDetails))
885
+ }
886
+ attr_accessor :billing_details
887
+ # If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
888
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Blik)) }
889
+ attr_accessor :blik
890
+ # If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
891
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Boleto)) }
892
+ attr_accessor :boleto
893
+ # If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
894
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Cashapp)) }
895
+ attr_accessor :cashapp
896
+ # If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method.
897
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Crypto)) }
898
+ attr_accessor :crypto
899
+ # If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
900
+ sig {
901
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::CustomerBalance))
902
+ }
903
+ attr_accessor :customer_balance
904
+ # If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
905
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Eps)) }
906
+ attr_accessor :eps
907
+ # If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
908
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Fpx)) }
909
+ attr_accessor :fpx
910
+ # If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
911
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Giropay)) }
912
+ attr_accessor :giropay
913
+ # If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
914
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Grabpay)) }
915
+ attr_accessor :grabpay
916
+ # If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
917
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Ideal)) }
918
+ attr_accessor :ideal
919
+ # If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
920
+ sig {
921
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::InteracPresent))
922
+ }
923
+ attr_accessor :interac_present
924
+ # If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method.
925
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::KakaoPay)) }
926
+ attr_accessor :kakao_pay
927
+ # If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
928
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Klarna)) }
929
+ attr_accessor :klarna
930
+ # If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
931
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Konbini)) }
932
+ attr_accessor :konbini
933
+ # If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method.
934
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::KrCard)) }
935
+ attr_accessor :kr_card
936
+ # If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.
937
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Link)) }
938
+ attr_accessor :link
939
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
940
+ sig { returns(T.nilable(T::Hash[String, String])) }
941
+ attr_accessor :metadata
942
+ # If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method.
943
+ sig {
944
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Mobilepay))
945
+ }
946
+ attr_accessor :mobilepay
947
+ # If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method.
948
+ sig {
949
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Multibanco))
950
+ }
951
+ attr_accessor :multibanco
952
+ # If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method.
953
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::NaverPay)) }
954
+ attr_accessor :naver_pay
955
+ # If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method.
956
+ sig {
957
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::NzBankAccount))
958
+ }
959
+ attr_accessor :nz_bank_account
960
+ # If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
961
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Oxxo)) }
962
+ attr_accessor :oxxo
963
+ # If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
964
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::P24)) }
965
+ attr_accessor :p24
966
+ # If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method.
967
+ sig {
968
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::PayByBank))
969
+ }
970
+ attr_accessor :pay_by_bank
971
+ # If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method.
972
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Payco)) }
973
+ attr_accessor :payco
974
+ # If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.
975
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Paynow)) }
976
+ attr_accessor :paynow
977
+ # If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.
978
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Paypal)) }
979
+ attr_accessor :paypal
980
+ # If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.
981
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Pix)) }
982
+ attr_accessor :pix
983
+ # If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.
984
+ sig {
985
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Promptpay))
986
+ }
987
+ attr_accessor :promptpay
988
+ # Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.
989
+ sig {
990
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::RadarOptions))
991
+ }
992
+ attr_accessor :radar_options
993
+ # If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method.
994
+ sig {
995
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::RevolutPay))
996
+ }
997
+ attr_accessor :revolut_pay
998
+ # If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method.
999
+ sig {
1000
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::SamsungPay))
1001
+ }
1002
+ attr_accessor :samsung_pay
1003
+ # If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method.
1004
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Satispay)) }
1005
+ attr_accessor :satispay
1006
+ # If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
1007
+ sig {
1008
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::SepaDebit))
1009
+ }
1010
+ attr_accessor :sepa_debit
1011
+ # If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.
1012
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Sofort)) }
1013
+ attr_accessor :sofort
1014
+ # If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method.
1015
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Swish)) }
1016
+ attr_accessor :swish
1017
+ # If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
1018
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Twint)) }
1019
+ attr_accessor :twint
1020
+ # The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
1021
+ sig { returns(String) }
1022
+ attr_accessor :type
1023
+ # If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.
1024
+ sig {
1025
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::UsBankAccount))
1026
+ }
1027
+ attr_accessor :us_bank_account
1028
+ # If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.
1029
+ sig {
1030
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::WechatPay))
1031
+ }
1032
+ attr_accessor :wechat_pay
1033
+ # If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.
1034
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Zip)) }
1035
+ attr_accessor :zip
1036
+ sig {
1037
+ params(acss_debit: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::AcssDebit), affirm: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Affirm), afterpay_clearpay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::AfterpayClearpay), alipay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Alipay), allow_redisplay: T.nilable(String), alma: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Alma), amazon_pay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::AmazonPay), au_becs_debit: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::AuBecsDebit), bacs_debit: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::BacsDebit), bancontact: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Bancontact), billie: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Billie), billing_details: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::BillingDetails), blik: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Blik), boleto: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Boleto), cashapp: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Cashapp), crypto: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Crypto), customer_balance: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::CustomerBalance), eps: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Eps), fpx: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Fpx), giropay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Giropay), grabpay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Grabpay), ideal: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Ideal), interac_present: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::InteracPresent), kakao_pay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::KakaoPay), klarna: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Klarna), konbini: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Konbini), kr_card: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::KrCard), link: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Link), metadata: T.nilable(T::Hash[String, String]), mobilepay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Mobilepay), multibanco: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Multibanco), naver_pay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::NaverPay), nz_bank_account: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::NzBankAccount), oxxo: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Oxxo), p24: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::P24), pay_by_bank: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::PayByBank), payco: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Payco), paynow: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Paynow), paypal: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Paypal), pix: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Pix), promptpay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Promptpay), radar_options: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::RadarOptions), revolut_pay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::RevolutPay), samsung_pay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::SamsungPay), satispay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Satispay), sepa_debit: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::SepaDebit), sofort: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Sofort), swish: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Swish), twint: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Twint), type: String, us_bank_account: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::UsBankAccount), wechat_pay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::WechatPay), zip: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData::Zip)).void
1038
+ }
1039
+ def initialize(
1040
+ acss_debit: nil,
1041
+ affirm: nil,
1042
+ afterpay_clearpay: nil,
1043
+ alipay: nil,
1044
+ allow_redisplay: nil,
1045
+ alma: nil,
1046
+ amazon_pay: nil,
1047
+ au_becs_debit: nil,
1048
+ bacs_debit: nil,
1049
+ bancontact: nil,
1050
+ billie: nil,
1051
+ billing_details: nil,
1052
+ blik: nil,
1053
+ boleto: nil,
1054
+ cashapp: nil,
1055
+ crypto: nil,
1056
+ customer_balance: nil,
1057
+ eps: nil,
1058
+ fpx: nil,
1059
+ giropay: nil,
1060
+ grabpay: nil,
1061
+ ideal: nil,
1062
+ interac_present: nil,
1063
+ kakao_pay: nil,
1064
+ klarna: nil,
1065
+ konbini: nil,
1066
+ kr_card: nil,
1067
+ link: nil,
1068
+ metadata: nil,
1069
+ mobilepay: nil,
1070
+ multibanco: nil,
1071
+ naver_pay: nil,
1072
+ nz_bank_account: nil,
1073
+ oxxo: nil,
1074
+ p24: nil,
1075
+ pay_by_bank: nil,
1076
+ payco: nil,
1077
+ paynow: nil,
1078
+ paypal: nil,
1079
+ pix: nil,
1080
+ promptpay: nil,
1081
+ radar_options: nil,
1082
+ revolut_pay: nil,
1083
+ samsung_pay: nil,
1084
+ satispay: nil,
1085
+ sepa_debit: nil,
1086
+ sofort: nil,
1087
+ swish: nil,
1088
+ twint: nil,
1089
+ type: nil,
1090
+ us_bank_account: nil,
1091
+ wechat_pay: nil,
1092
+ zip: nil
1093
+ ); end
1094
+ end
1095
+ class PaymentMethodOptions < Stripe::RequestParams
1096
+ class AcssDebit < Stripe::RequestParams
1097
+ class MandateOptions < Stripe::RequestParams
1098
+ # A URL for custom mandate text to render during confirmation step.
1099
+ # The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent,
1100
+ # or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent.
1101
+ sig { returns(T.nilable(T.nilable(String))) }
1102
+ attr_accessor :custom_mandate_url
1103
+ # List of Stripe products where this mandate can be selected automatically.
1104
+ sig { returns(T.nilable(T::Array[String])) }
1105
+ attr_accessor :default_for
1106
+ # Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'.
1107
+ sig { returns(T.nilable(String)) }
1108
+ attr_accessor :interval_description
1109
+ # Payment schedule for the mandate.
1110
+ sig { returns(T.nilable(String)) }
1111
+ attr_accessor :payment_schedule
1112
+ # Transaction type of the mandate.
1113
+ sig { returns(T.nilable(String)) }
1114
+ attr_accessor :transaction_type
1115
+ sig {
1116
+ params(custom_mandate_url: T.nilable(T.nilable(String)), default_for: T.nilable(T::Array[String]), interval_description: T.nilable(String), payment_schedule: T.nilable(String), transaction_type: T.nilable(String)).void
1117
+ }
1118
+ def initialize(
1119
+ custom_mandate_url: nil,
1120
+ default_for: nil,
1121
+ interval_description: nil,
1122
+ payment_schedule: nil,
1123
+ transaction_type: nil
1124
+ ); end
1125
+ end
1126
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
1127
+ sig { returns(T.nilable(String)) }
1128
+ attr_accessor :currency
1129
+ # Additional fields for Mandate creation
1130
+ sig {
1131
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::AcssDebit::MandateOptions))
1132
+ }
1133
+ attr_accessor :mandate_options
1134
+ # Bank account verification method.
1135
+ sig { returns(T.nilable(String)) }
1136
+ attr_accessor :verification_method
1137
+ sig {
1138
+ params(currency: T.nilable(String), mandate_options: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::AcssDebit::MandateOptions), verification_method: T.nilable(String)).void
1139
+ }
1140
+ def initialize(currency: nil, mandate_options: nil, verification_method: nil); end
1141
+ end
1142
+ class AmazonPay < Stripe::RequestParams; end
1143
+ class BacsDebit < Stripe::RequestParams
1144
+ class MandateOptions < Stripe::RequestParams
1145
+ # Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'.
1146
+ sig { returns(T.nilable(T.nilable(String))) }
1147
+ attr_accessor :reference_prefix
1148
+ sig { params(reference_prefix: T.nilable(T.nilable(String))).void }
1149
+ def initialize(reference_prefix: nil); end
1150
+ end
1151
+ # Additional fields for Mandate creation
1152
+ sig {
1153
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::BacsDebit::MandateOptions))
1154
+ }
1155
+ attr_accessor :mandate_options
1156
+ sig {
1157
+ params(mandate_options: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::BacsDebit::MandateOptions)).void
1158
+ }
1159
+ def initialize(mandate_options: nil); end
1160
+ end
1161
+ class Card < Stripe::RequestParams
1162
+ class MandateOptions < Stripe::RequestParams
1163
+ # Amount to be charged for future payments.
1164
+ sig { returns(Integer) }
1165
+ attr_accessor :amount
1166
+ # One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.
1167
+ sig { returns(String) }
1168
+ attr_accessor :amount_type
1169
+ # Currency in which future payments will be charged. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
1170
+ sig { returns(String) }
1171
+ attr_accessor :currency
1172
+ # A description of the mandate or subscription that is meant to be displayed to the customer.
1173
+ sig { returns(T.nilable(String)) }
1174
+ attr_accessor :description
1175
+ # End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date.
1176
+ sig { returns(T.nilable(Integer)) }
1177
+ attr_accessor :end_date
1178
+ # Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.
1179
+ sig { returns(String) }
1180
+ attr_accessor :interval
1181
+ # The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`.
1182
+ sig { returns(T.nilable(Integer)) }
1183
+ attr_accessor :interval_count
1184
+ # Unique identifier for the mandate or subscription.
1185
+ sig { returns(String) }
1186
+ attr_accessor :reference
1187
+ # Start date of the mandate or subscription. Start date should not be lesser than yesterday.
1188
+ sig { returns(Integer) }
1189
+ attr_accessor :start_date
1190
+ # Specifies the type of mandates supported. Possible values are `india`.
1191
+ sig { returns(T.nilable(T::Array[String])) }
1192
+ attr_accessor :supported_types
1193
+ sig {
1194
+ params(amount: Integer, amount_type: String, currency: String, description: T.nilable(String), end_date: T.nilable(Integer), interval: String, interval_count: T.nilable(Integer), reference: String, start_date: Integer, supported_types: T.nilable(T::Array[String])).void
1195
+ }
1196
+ def initialize(
1197
+ amount: nil,
1198
+ amount_type: nil,
1199
+ currency: nil,
1200
+ description: nil,
1201
+ end_date: nil,
1202
+ interval: nil,
1203
+ interval_count: nil,
1204
+ reference: nil,
1205
+ start_date: nil,
1206
+ supported_types: nil
1207
+ ); end
1208
+ end
1209
+ class ThreeDSecure < Stripe::RequestParams
1210
+ class NetworkOptions < Stripe::RequestParams
1211
+ class CartesBancaires < Stripe::RequestParams
1212
+ # The cryptogram calculation algorithm used by the card Issuer's ACS
1213
+ # to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`.
1214
+ # messageExtension: CB-AVALGO
1215
+ sig { returns(String) }
1216
+ attr_accessor :cb_avalgo
1217
+ # The exemption indicator returned from Cartes Bancaires in the ARes.
1218
+ # message extension: CB-EXEMPTION; string (4 characters)
1219
+ # This is a 3 byte bitmap (low significant byte first and most significant
1220
+ # bit first) that has been Base64 encoded
1221
+ sig { returns(T.nilable(String)) }
1222
+ attr_accessor :cb_exemption
1223
+ # The risk score returned from Cartes Bancaires in the ARes.
1224
+ # message extension: CB-SCORE; numeric value 0-99
1225
+ sig { returns(T.nilable(Integer)) }
1226
+ attr_accessor :cb_score
1227
+ sig {
1228
+ params(cb_avalgo: String, cb_exemption: T.nilable(String), cb_score: T.nilable(Integer)).void
1229
+ }
1230
+ def initialize(cb_avalgo: nil, cb_exemption: nil, cb_score: nil); end
1231
+ end
1232
+ # Cartes Bancaires-specific 3DS fields.
1233
+ sig {
1234
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions::CartesBancaires))
1235
+ }
1236
+ attr_accessor :cartes_bancaires
1237
+ sig {
1238
+ params(cartes_bancaires: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions::CartesBancaires)).void
1239
+ }
1240
+ def initialize(cartes_bancaires: nil); end
1241
+ end
1242
+ # The `transStatus` returned from the card Issuer’s ACS in the ARes.
1243
+ sig { returns(T.nilable(String)) }
1244
+ attr_accessor :ares_trans_status
1245
+ # The cryptogram, also known as the "authentication value" (AAV, CAVV or
1246
+ # AEVV). This value is 20 bytes, base64-encoded into a 28-character string.
1247
+ # (Most 3D Secure providers will return the base64-encoded version, which
1248
+ # is what you should specify here.)
1249
+ sig { returns(T.nilable(String)) }
1250
+ attr_accessor :cryptogram
1251
+ # The Electronic Commerce Indicator (ECI) is returned by your 3D Secure
1252
+ # provider and indicates what degree of authentication was performed.
1253
+ sig { returns(T.nilable(String)) }
1254
+ attr_accessor :electronic_commerce_indicator
1255
+ # Network specific 3DS fields. Network specific arguments require an
1256
+ # explicit card brand choice. The parameter `payment_method_options.card.network``
1257
+ # must be populated accordingly
1258
+ sig {
1259
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions))
1260
+ }
1261
+ attr_accessor :network_options
1262
+ # The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the
1263
+ # AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
1264
+ sig { returns(T.nilable(String)) }
1265
+ attr_accessor :requestor_challenge_indicator
1266
+ # For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server
1267
+ # Transaction ID (dsTransID).
1268
+ sig { returns(T.nilable(String)) }
1269
+ attr_accessor :transaction_id
1270
+ # The version of 3D Secure that was performed.
1271
+ sig { returns(T.nilable(String)) }
1272
+ attr_accessor :version
1273
+ sig {
1274
+ params(ares_trans_status: T.nilable(String), cryptogram: T.nilable(String), electronic_commerce_indicator: T.nilable(String), network_options: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions), requestor_challenge_indicator: T.nilable(String), transaction_id: T.nilable(String), version: T.nilable(String)).void
1275
+ }
1276
+ def initialize(
1277
+ ares_trans_status: nil,
1278
+ cryptogram: nil,
1279
+ electronic_commerce_indicator: nil,
1280
+ network_options: nil,
1281
+ requestor_challenge_indicator: nil,
1282
+ transaction_id: nil,
1283
+ version: nil
1284
+ ); end
1285
+ end
1286
+ # Configuration options for setting up an eMandate for cards issued in India.
1287
+ sig {
1288
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card::MandateOptions))
1289
+ }
1290
+ attr_accessor :mandate_options
1291
+ # When specified, this parameter signals that a card has been collected
1292
+ # as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This
1293
+ # parameter can only be provided during confirmation.
1294
+ sig { returns(T.nilable(T::Boolean)) }
1295
+ attr_accessor :moto
1296
+ # Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the SetupIntent. Can be only set confirm-time.
1297
+ sig { returns(T.nilable(String)) }
1298
+ attr_accessor :network
1299
+ # We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
1300
+ sig { returns(T.nilable(String)) }
1301
+ attr_accessor :request_three_d_secure
1302
+ # If 3D Secure authentication was performed with a third-party provider,
1303
+ # the authentication details to use for this setup.
1304
+ sig {
1305
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card::ThreeDSecure))
1306
+ }
1307
+ attr_accessor :three_d_secure
1308
+ sig {
1309
+ params(mandate_options: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card::MandateOptions), moto: T.nilable(T::Boolean), network: T.nilable(String), request_three_d_secure: T.nilable(String), three_d_secure: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card::ThreeDSecure)).void
1310
+ }
1311
+ def initialize(
1312
+ mandate_options: nil,
1313
+ moto: nil,
1314
+ network: nil,
1315
+ request_three_d_secure: nil,
1316
+ three_d_secure: nil
1317
+ ); end
1318
+ end
1319
+ class CardPresent < Stripe::RequestParams; end
1320
+ class Klarna < Stripe::RequestParams
1321
+ class OnDemand < Stripe::RequestParams
1322
+ # Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc.
1323
+ sig { returns(T.nilable(Integer)) }
1324
+ attr_accessor :average_amount
1325
+ # The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc.
1326
+ sig { returns(T.nilable(Integer)) }
1327
+ attr_accessor :maximum_amount
1328
+ # The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc.
1329
+ sig { returns(T.nilable(Integer)) }
1330
+ attr_accessor :minimum_amount
1331
+ # Interval at which the customer is making purchases
1332
+ sig { returns(T.nilable(String)) }
1333
+ attr_accessor :purchase_interval
1334
+ # The number of `purchase_interval` between charges
1335
+ sig { returns(T.nilable(Integer)) }
1336
+ attr_accessor :purchase_interval_count
1337
+ sig {
1338
+ params(average_amount: T.nilable(Integer), maximum_amount: T.nilable(Integer), minimum_amount: T.nilable(Integer), purchase_interval: T.nilable(String), purchase_interval_count: T.nilable(Integer)).void
1339
+ }
1340
+ def initialize(
1341
+ average_amount: nil,
1342
+ maximum_amount: nil,
1343
+ minimum_amount: nil,
1344
+ purchase_interval: nil,
1345
+ purchase_interval_count: nil
1346
+ ); end
1347
+ end
1348
+ class Subscription < Stripe::RequestParams
1349
+ class NextBilling < Stripe::RequestParams
1350
+ # The amount of the next charge for the subscription.
1351
+ sig { returns(Integer) }
1352
+ attr_accessor :amount
1353
+ # The date of the next charge for the subscription in YYYY-MM-DD format.
1354
+ sig { returns(String) }
1355
+ attr_accessor :date
1356
+ sig { params(amount: Integer, date: String).void }
1357
+ def initialize(amount: nil, date: nil); end
1358
+ end
1359
+ # Unit of time between subscription charges.
1360
+ sig { returns(String) }
1361
+ attr_accessor :interval
1362
+ # The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months.
1363
+ sig { returns(T.nilable(Integer)) }
1364
+ attr_accessor :interval_count
1365
+ # Name for subscription.
1366
+ sig { returns(T.nilable(String)) }
1367
+ attr_accessor :name
1368
+ # Describes the upcoming charge for this subscription.
1369
+ sig {
1370
+ returns(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Klarna::Subscription::NextBilling)
1371
+ }
1372
+ attr_accessor :next_billing
1373
+ # A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges.
1374
+ sig { returns(String) }
1375
+ attr_accessor :reference
1376
+ sig {
1377
+ params(interval: String, interval_count: T.nilable(Integer), name: T.nilable(String), next_billing: ::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Klarna::Subscription::NextBilling, reference: String).void
1378
+ }
1379
+ def initialize(
1380
+ interval: nil,
1381
+ interval_count: nil,
1382
+ name: nil,
1383
+ next_billing: nil,
1384
+ reference: nil
1385
+ ); end
1386
+ end
1387
+ # The currency of the SetupIntent. Three letter ISO currency code.
1388
+ sig { returns(T.nilable(String)) }
1389
+ attr_accessor :currency
1390
+ # On-demand details if setting up a payment method for on-demand payments.
1391
+ sig {
1392
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Klarna::OnDemand))
1393
+ }
1394
+ attr_accessor :on_demand
1395
+ # Preferred language of the Klarna authorization page that the customer is redirected to
1396
+ sig { returns(T.nilable(String)) }
1397
+ attr_accessor :preferred_locale
1398
+ # Subscription details if setting up or charging a subscription
1399
+ sig {
1400
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Klarna::Subscription]))))
1401
+ }
1402
+ attr_accessor :subscriptions
1403
+ sig {
1404
+ params(currency: T.nilable(String), on_demand: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Klarna::OnDemand), preferred_locale: T.nilable(String), subscriptions: T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Klarna::Subscription])))).void
1405
+ }
1406
+ def initialize(
1407
+ currency: nil,
1408
+ on_demand: nil,
1409
+ preferred_locale: nil,
1410
+ subscriptions: nil
1411
+ ); end
1412
+ end
1413
+ class Link < Stripe::RequestParams
1414
+ # [Deprecated] This is a legacy parameter that no longer has any function.
1415
+ sig { returns(T.nilable(String)) }
1416
+ attr_accessor :persistent_token
1417
+ sig { params(persistent_token: T.nilable(String)).void }
1418
+ def initialize(persistent_token: nil); end
1419
+ end
1420
+ class Paypal < Stripe::RequestParams
1421
+ # The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer.
1422
+ sig { returns(T.nilable(String)) }
1423
+ attr_accessor :billing_agreement_id
1424
+ sig { params(billing_agreement_id: T.nilable(String)).void }
1425
+ def initialize(billing_agreement_id: nil); end
1426
+ end
1427
+ class SepaDebit < Stripe::RequestParams
1428
+ class MandateOptions < Stripe::RequestParams
1429
+ # Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'.
1430
+ sig { returns(T.nilable(T.nilable(String))) }
1431
+ attr_accessor :reference_prefix
1432
+ sig { params(reference_prefix: T.nilable(T.nilable(String))).void }
1433
+ def initialize(reference_prefix: nil); end
1434
+ end
1435
+ # Additional fields for Mandate creation
1436
+ sig {
1437
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::SepaDebit::MandateOptions))
1438
+ }
1439
+ attr_accessor :mandate_options
1440
+ sig {
1441
+ params(mandate_options: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::SepaDebit::MandateOptions)).void
1442
+ }
1443
+ def initialize(mandate_options: nil); end
1444
+ end
1445
+ class UsBankAccount < Stripe::RequestParams
1446
+ class FinancialConnections < Stripe::RequestParams
1447
+ class Filters < Stripe::RequestParams
1448
+ # The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`.
1449
+ sig { returns(T.nilable(T::Array[String])) }
1450
+ attr_accessor :account_subcategories
1451
+ sig { params(account_subcategories: T.nilable(T::Array[String])).void }
1452
+ def initialize(account_subcategories: nil); end
1453
+ end
1454
+ # Provide filters for the linked accounts that the customer can select for the payment method.
1455
+ sig {
1456
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount::FinancialConnections::Filters))
1457
+ }
1458
+ attr_accessor :filters
1459
+ # The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`.
1460
+ sig { returns(T.nilable(T::Array[String])) }
1461
+ attr_accessor :permissions
1462
+ # List of data features that you would like to retrieve upon account creation.
1463
+ sig { returns(T.nilable(T::Array[String])) }
1464
+ attr_accessor :prefetch
1465
+ # For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
1466
+ sig { returns(T.nilable(String)) }
1467
+ attr_accessor :return_url
1468
+ sig {
1469
+ params(filters: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount::FinancialConnections::Filters), permissions: T.nilable(T::Array[String]), prefetch: T.nilable(T::Array[String]), return_url: T.nilable(String)).void
1470
+ }
1471
+ def initialize(filters: nil, permissions: nil, prefetch: nil, return_url: nil); end
1472
+ end
1473
+ class MandateOptions < Stripe::RequestParams
1474
+ # The method used to collect offline mandate customer acceptance.
1475
+ sig { returns(T.nilable(T.nilable(String))) }
1476
+ attr_accessor :collection_method
1477
+ sig { params(collection_method: T.nilable(T.nilable(String))).void }
1478
+ def initialize(collection_method: nil); end
1479
+ end
1480
+ class Networks < Stripe::RequestParams
1481
+ # Triggers validations to run across the selected networks
1482
+ sig { returns(T.nilable(T::Array[String])) }
1483
+ attr_accessor :requested
1484
+ sig { params(requested: T.nilable(T::Array[String])).void }
1485
+ def initialize(requested: nil); end
1486
+ end
1487
+ # Additional fields for Financial Connections Session creation
1488
+ sig {
1489
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount::FinancialConnections))
1490
+ }
1491
+ attr_accessor :financial_connections
1492
+ # Additional fields for Mandate creation
1493
+ sig {
1494
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount::MandateOptions))
1495
+ }
1496
+ attr_accessor :mandate_options
1497
+ # Additional fields for network related functions
1498
+ sig {
1499
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount::Networks))
1500
+ }
1501
+ attr_accessor :networks
1502
+ # Bank account verification method.
1503
+ sig { returns(T.nilable(String)) }
1504
+ attr_accessor :verification_method
1505
+ sig {
1506
+ params(financial_connections: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount::FinancialConnections), mandate_options: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount::MandateOptions), networks: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount::Networks), verification_method: T.nilable(String)).void
1507
+ }
1508
+ def initialize(
1509
+ financial_connections: nil,
1510
+ mandate_options: nil,
1511
+ networks: nil,
1512
+ verification_method: nil
1513
+ ); end
1514
+ end
1515
+ # If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options.
1516
+ sig {
1517
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::AcssDebit))
1518
+ }
1519
+ attr_accessor :acss_debit
1520
+ # If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options.
1521
+ sig {
1522
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::AmazonPay))
1523
+ }
1524
+ attr_accessor :amazon_pay
1525
+ # If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options.
1526
+ sig {
1527
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::BacsDebit))
1528
+ }
1529
+ attr_accessor :bacs_debit
1530
+ # Configuration for any card setup attempted on this SetupIntent.
1531
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card)) }
1532
+ attr_accessor :card
1533
+ # If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options.
1534
+ sig {
1535
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::CardPresent))
1536
+ }
1537
+ attr_accessor :card_present
1538
+ # If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method options.
1539
+ sig {
1540
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Klarna))
1541
+ }
1542
+ attr_accessor :klarna
1543
+ # If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options.
1544
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Link)) }
1545
+ attr_accessor :link
1546
+ # If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options.
1547
+ sig {
1548
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Paypal))
1549
+ }
1550
+ attr_accessor :paypal
1551
+ # If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options.
1552
+ sig {
1553
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::SepaDebit))
1554
+ }
1555
+ attr_accessor :sepa_debit
1556
+ # If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options.
1557
+ sig {
1558
+ returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount))
1559
+ }
1560
+ attr_accessor :us_bank_account
1561
+ sig {
1562
+ params(acss_debit: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::AcssDebit), amazon_pay: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::AmazonPay), bacs_debit: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::BacsDebit), card: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Card), card_present: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::CardPresent), klarna: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Klarna), link: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Link), paypal: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::Paypal), sepa_debit: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::SepaDebit), us_bank_account: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions::UsBankAccount)).void
1563
+ }
1564
+ def initialize(
1565
+ acss_debit: nil,
1566
+ amazon_pay: nil,
1567
+ bacs_debit: nil,
1568
+ card: nil,
1569
+ card_present: nil,
1570
+ klarna: nil,
1571
+ link: nil,
1572
+ paypal: nil,
1573
+ sepa_debit: nil,
1574
+ us_bank_account: nil
1575
+ ); end
1576
+ end
1577
+ class SingleUse < Stripe::RequestParams
1578
+ # Amount the customer is granting permission to collect later. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
1579
+ sig { returns(Integer) }
1580
+ attr_accessor :amount
1581
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
1582
+ sig { returns(String) }
1583
+ attr_accessor :currency
1584
+ sig { params(amount: Integer, currency: String).void }
1585
+ def initialize(amount: nil, currency: nil); end
1586
+ end
1587
+ # If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.
1588
+ #
1589
+ # It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.
1590
+ sig { returns(T.nilable(T::Boolean)) }
1591
+ attr_accessor :attach_to_self
1592
+ # When you enable this parameter, this SetupIntent accepts payment methods that you enable in the Dashboard and that are compatible with its other parameters.
1593
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::AutomaticPaymentMethods)) }
1594
+ attr_accessor :automatic_payment_methods
1595
+ # Set to `true` to attempt to confirm this SetupIntent immediately. This parameter defaults to `false`. If a card is the attached payment method, you can provide a `return_url` in case further authentication is necessary.
1596
+ sig { returns(T.nilable(T::Boolean)) }
1597
+ attr_accessor :confirm
1598
+ # ID of the ConfirmationToken used to confirm this SetupIntent.
1599
+ #
1600
+ # If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence.
1601
+ sig { returns(T.nilable(String)) }
1602
+ attr_accessor :confirmation_token
1603
+ # ID of the Customer this SetupIntent belongs to, if one exists.
1604
+ #
1605
+ # If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
1606
+ sig { returns(T.nilable(String)) }
1607
+ attr_accessor :customer
1608
+ # An arbitrary string attached to the object. Often useful for displaying to users.
1609
+ sig { returns(T.nilable(String)) }
1610
+ attr_accessor :description
1611
+ # Specifies which fields in the response should be expanded.
1612
+ sig { returns(T.nilable(T::Array[String])) }
1613
+ attr_accessor :expand
1614
+ # Indicates the directions of money movement for which this payment method is intended to be used.
1615
+ #
1616
+ # Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.
1617
+ sig { returns(T.nilable(T::Array[String])) }
1618
+ attr_accessor :flow_directions
1619
+ # This hash contains details about the mandate to create. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/setup_intents/create#create_setup_intent-confirm).
1620
+ sig {
1621
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::CreateParams::MandateData))))
1622
+ }
1623
+ attr_accessor :mandate_data
1624
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
1625
+ sig { returns(T.nilable(T::Hash[String, String])) }
1626
+ attr_accessor :metadata
1627
+ # The Stripe account ID created for this SetupIntent.
1628
+ sig { returns(T.nilable(String)) }
1629
+ attr_accessor :on_behalf_of
1630
+ # ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent.
1631
+ sig { returns(T.nilable(String)) }
1632
+ attr_accessor :payment_method
1633
+ # The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this SetupIntent.
1634
+ sig { returns(T.nilable(String)) }
1635
+ attr_accessor :payment_method_configuration
1636
+ # When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method)
1637
+ # value in the SetupIntent.
1638
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData)) }
1639
+ attr_accessor :payment_method_data
1640
+ # Payment method-specific configuration for this SetupIntent.
1641
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions)) }
1642
+ attr_accessor :payment_method_options
1643
+ # The list of payment method types (for example, card) that this SetupIntent can use. If you don't provide this, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type).
1644
+ sig { returns(T.nilable(T::Array[String])) }
1645
+ attr_accessor :payment_method_types
1646
+ # The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. To redirect to a mobile application, you can alternatively supply an application URI scheme. This parameter can only be used with [`confirm=true`](https://stripe.com/docs/api/setup_intents/create#create_setup_intent-confirm).
1647
+ sig { returns(T.nilable(String)) }
1648
+ attr_accessor :return_url
1649
+ # If you populate this hash, this SetupIntent generates a `single_use` mandate after successful completion.
1650
+ #
1651
+ # Single-use mandates are only valid for the following payment methods: `acss_debit`, `alipay`, `au_becs_debit`, `bacs_debit`, `bancontact`, `boleto`, `ideal`, `link`, `sepa_debit`, and `us_bank_account`.
1652
+ sig { returns(T.nilable(::Stripe::SetupIntent::CreateParams::SingleUse)) }
1653
+ attr_accessor :single_use
1654
+ # Indicates how the payment method is intended to be used in the future. If not provided, this value defaults to `off_session`.
1655
+ sig { returns(T.nilable(String)) }
1656
+ attr_accessor :usage
1657
+ # Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.
1658
+ sig { returns(T.nilable(T::Boolean)) }
1659
+ attr_accessor :use_stripe_sdk
1660
+ sig {
1661
+ params(attach_to_self: T.nilable(T::Boolean), automatic_payment_methods: T.nilable(::Stripe::SetupIntent::CreateParams::AutomaticPaymentMethods), confirm: T.nilable(T::Boolean), confirmation_token: T.nilable(String), customer: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), flow_directions: T.nilable(T::Array[String]), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::CreateParams::MandateData))), metadata: T.nilable(T::Hash[String, String]), on_behalf_of: T.nilable(String), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::SetupIntent::CreateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String]), return_url: T.nilable(String), single_use: T.nilable(::Stripe::SetupIntent::CreateParams::SingleUse), usage: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void
1662
+ }
1663
+ def initialize(
1664
+ attach_to_self: nil,
1665
+ automatic_payment_methods: nil,
1666
+ confirm: nil,
1667
+ confirmation_token: nil,
1668
+ customer: nil,
1669
+ description: nil,
1670
+ expand: nil,
1671
+ flow_directions: nil,
1672
+ mandate_data: nil,
1673
+ metadata: nil,
1674
+ on_behalf_of: nil,
1675
+ payment_method: nil,
1676
+ payment_method_configuration: nil,
1677
+ payment_method_data: nil,
1678
+ payment_method_options: nil,
1679
+ payment_method_types: nil,
1680
+ return_url: nil,
1681
+ single_use: nil,
1682
+ usage: nil,
1683
+ use_stripe_sdk: nil
1684
+ ); end
1685
+ end
1686
+ class UpdateParams < Stripe::RequestParams
1687
+ class PaymentMethodData < Stripe::RequestParams
1688
+ class AcssDebit < Stripe::RequestParams
1689
+ # Customer's bank account number.
1690
+ sig { returns(String) }
1691
+ attr_accessor :account_number
1692
+ # Institution number of the customer's bank.
1693
+ sig { returns(String) }
1694
+ attr_accessor :institution_number
1695
+ # Transit number of the customer's bank.
1696
+ sig { returns(String) }
1697
+ attr_accessor :transit_number
1698
+ sig {
1699
+ params(account_number: String, institution_number: String, transit_number: String).void
1700
+ }
1701
+ def initialize(account_number: nil, institution_number: nil, transit_number: nil); end
1702
+ end
1703
+ class Affirm < Stripe::RequestParams; end
1704
+ class AfterpayClearpay < Stripe::RequestParams; end
1705
+ class Alipay < Stripe::RequestParams; end
1706
+ class Alma < Stripe::RequestParams; end
1707
+ class AmazonPay < Stripe::RequestParams; end
1708
+ class AuBecsDebit < Stripe::RequestParams
1709
+ # The account number for the bank account.
1710
+ sig { returns(String) }
1711
+ attr_accessor :account_number
1712
+ # Bank-State-Branch number of the bank account.
1713
+ sig { returns(String) }
1714
+ attr_accessor :bsb_number
1715
+ sig { params(account_number: String, bsb_number: String).void }
1716
+ def initialize(account_number: nil, bsb_number: nil); end
1717
+ end
1718
+ class BacsDebit < Stripe::RequestParams
1719
+ # Account number of the bank account that the funds will be debited from.
1720
+ sig { returns(T.nilable(String)) }
1721
+ attr_accessor :account_number
1722
+ # Sort code of the bank account. (e.g., `10-20-30`)
1723
+ sig { returns(T.nilable(String)) }
1724
+ attr_accessor :sort_code
1725
+ sig { params(account_number: T.nilable(String), sort_code: T.nilable(String)).void }
1726
+ def initialize(account_number: nil, sort_code: nil); end
1727
+ end
1728
+ class Bancontact < Stripe::RequestParams; end
1729
+ class Billie < Stripe::RequestParams; end
1730
+ class BillingDetails < Stripe::RequestParams
1731
+ class Address < Stripe::RequestParams
1732
+ # City, district, suburb, town, or village.
1733
+ sig { returns(T.nilable(String)) }
1734
+ attr_accessor :city
1735
+ # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
1736
+ sig { returns(T.nilable(String)) }
1737
+ attr_accessor :country
1738
+ # Address line 1 (e.g., street, PO Box, or company name).
1739
+ sig { returns(T.nilable(String)) }
1740
+ attr_accessor :line1
1741
+ # Address line 2 (e.g., apartment, suite, unit, or building).
1742
+ sig { returns(T.nilable(String)) }
1743
+ attr_accessor :line2
1744
+ # ZIP or postal code.
1745
+ sig { returns(T.nilable(String)) }
1746
+ attr_accessor :postal_code
1747
+ # State, county, province, or region.
1748
+ sig { returns(T.nilable(String)) }
1749
+ attr_accessor :state
1750
+ sig {
1751
+ params(city: T.nilable(String), country: T.nilable(String), line1: T.nilable(String), line2: T.nilable(String), postal_code: T.nilable(String), state: T.nilable(String)).void
1752
+ }
1753
+ def initialize(
1754
+ city: nil,
1755
+ country: nil,
1756
+ line1: nil,
1757
+ line2: nil,
1758
+ postal_code: nil,
1759
+ state: nil
1760
+ ); end
1761
+ end
1762
+ # Billing address.
1763
+ sig {
1764
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::UpdateParams::PaymentMethodData::BillingDetails::Address))))
1765
+ }
1766
+ attr_accessor :address
1767
+ # Email address.
1768
+ sig { returns(T.nilable(T.nilable(String))) }
1769
+ attr_accessor :email
1770
+ # Full name.
1771
+ sig { returns(T.nilable(T.nilable(String))) }
1772
+ attr_accessor :name
1773
+ # Billing phone number (including extension).
1774
+ sig { returns(T.nilable(T.nilable(String))) }
1775
+ attr_accessor :phone
1776
+ # Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers.
1777
+ sig { returns(T.nilable(String)) }
1778
+ attr_accessor :tax_id
1779
+ sig {
1780
+ params(address: T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::UpdateParams::PaymentMethodData::BillingDetails::Address))), email: T.nilable(T.nilable(String)), name: T.nilable(T.nilable(String)), phone: T.nilable(T.nilable(String)), tax_id: T.nilable(String)).void
1781
+ }
1782
+ def initialize(address: nil, email: nil, name: nil, phone: nil, tax_id: nil); end
1783
+ end
1784
+ class Blik < Stripe::RequestParams; end
1785
+ class Boleto < Stripe::RequestParams
1786
+ # The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers)
1787
+ sig { returns(String) }
1788
+ attr_accessor :tax_id
1789
+ sig { params(tax_id: String).void }
1790
+ def initialize(tax_id: nil); end
1791
+ end
1792
+ class Cashapp < Stripe::RequestParams; end
1793
+ class Crypto < Stripe::RequestParams; end
1794
+ class CustomerBalance < Stripe::RequestParams; end
1795
+ class Eps < Stripe::RequestParams
1796
+ # The customer's bank.
1797
+ sig { returns(T.nilable(String)) }
1798
+ attr_accessor :bank
1799
+ sig { params(bank: T.nilable(String)).void }
1800
+ def initialize(bank: nil); end
1801
+ end
1802
+ class Fpx < Stripe::RequestParams
1803
+ # Account holder type for FPX transaction
1804
+ sig { returns(T.nilable(String)) }
1805
+ attr_accessor :account_holder_type
1806
+ # The customer's bank.
1807
+ sig { returns(String) }
1808
+ attr_accessor :bank
1809
+ sig { params(account_holder_type: T.nilable(String), bank: String).void }
1810
+ def initialize(account_holder_type: nil, bank: nil); end
1811
+ end
1812
+ class Giropay < Stripe::RequestParams; end
1813
+ class Grabpay < Stripe::RequestParams; end
1814
+ class Ideal < Stripe::RequestParams
1815
+ # The customer's bank. Only use this parameter for existing customers. Don't use it for new customers.
1816
+ sig { returns(T.nilable(String)) }
1817
+ attr_accessor :bank
1818
+ sig { params(bank: T.nilable(String)).void }
1819
+ def initialize(bank: nil); end
1820
+ end
1821
+ class InteracPresent < Stripe::RequestParams; end
1822
+ class KakaoPay < Stripe::RequestParams; end
1823
+ class Klarna < Stripe::RequestParams
1824
+ class Dob < Stripe::RequestParams
1825
+ # The day of birth, between 1 and 31.
1826
+ sig { returns(Integer) }
1827
+ attr_accessor :day
1828
+ # The month of birth, between 1 and 12.
1829
+ sig { returns(Integer) }
1830
+ attr_accessor :month
1831
+ # The four-digit year of birth.
1832
+ sig { returns(Integer) }
1833
+ attr_accessor :year
1834
+ sig { params(day: Integer, month: Integer, year: Integer).void }
1835
+ def initialize(day: nil, month: nil, year: nil); end
1836
+ end
1837
+ # Customer's date of birth
1838
+ sig {
1839
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Klarna::Dob))
1840
+ }
1841
+ attr_accessor :dob
1842
+ sig {
1843
+ params(dob: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Klarna::Dob)).void
1844
+ }
1845
+ def initialize(dob: nil); end
1846
+ end
1847
+ class Konbini < Stripe::RequestParams; end
1848
+ class KrCard < Stripe::RequestParams; end
1849
+ class Link < Stripe::RequestParams; end
1850
+ class Mobilepay < Stripe::RequestParams; end
1851
+ class Multibanco < Stripe::RequestParams; end
1852
+ class NaverPay < Stripe::RequestParams
1853
+ # Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`.
1854
+ sig { returns(T.nilable(String)) }
1855
+ attr_accessor :funding
1856
+ sig { params(funding: T.nilable(String)).void }
1857
+ def initialize(funding: nil); end
1858
+ end
1859
+ class NzBankAccount < Stripe::RequestParams
1860
+ # The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod’s billing details.
1861
+ sig { returns(T.nilable(String)) }
1862
+ attr_accessor :account_holder_name
1863
+ # The account number for the bank account.
1864
+ sig { returns(String) }
1865
+ attr_accessor :account_number
1866
+ # The numeric code for the bank account's bank.
1867
+ sig { returns(String) }
1868
+ attr_accessor :bank_code
1869
+ # The numeric code for the bank account's bank branch.
1870
+ sig { returns(String) }
1871
+ attr_accessor :branch_code
1872
+ # Attribute for param field reference
1873
+ sig { returns(T.nilable(String)) }
1874
+ attr_accessor :reference
1875
+ # The suffix of the bank account number.
1876
+ sig { returns(String) }
1877
+ attr_accessor :suffix
1878
+ sig {
1879
+ params(account_holder_name: T.nilable(String), account_number: String, bank_code: String, branch_code: String, reference: T.nilable(String), suffix: String).void
1880
+ }
1881
+ def initialize(
1882
+ account_holder_name: nil,
1883
+ account_number: nil,
1884
+ bank_code: nil,
1885
+ branch_code: nil,
1886
+ reference: nil,
1887
+ suffix: nil
1888
+ ); end
1889
+ end
1890
+ class Oxxo < Stripe::RequestParams; end
1891
+ class P24 < Stripe::RequestParams
1892
+ # The customer's bank.
1893
+ sig { returns(T.nilable(String)) }
1894
+ attr_accessor :bank
1895
+ sig { params(bank: T.nilable(String)).void }
1896
+ def initialize(bank: nil); end
1897
+ end
1898
+ class PayByBank < Stripe::RequestParams; end
1899
+ class Payco < Stripe::RequestParams; end
1900
+ class Paynow < Stripe::RequestParams; end
1901
+ class Paypal < Stripe::RequestParams; end
1902
+ class Pix < Stripe::RequestParams; end
1903
+ class Promptpay < Stripe::RequestParams; end
1904
+ class RadarOptions < Stripe::RequestParams
1905
+ # A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
1906
+ sig { returns(T.nilable(String)) }
1907
+ attr_accessor :session
1908
+ sig { params(session: T.nilable(String)).void }
1909
+ def initialize(session: nil); end
1910
+ end
1911
+ class RevolutPay < Stripe::RequestParams; end
1912
+ class SamsungPay < Stripe::RequestParams; end
1913
+ class Satispay < Stripe::RequestParams; end
1914
+ class SepaDebit < Stripe::RequestParams
1915
+ # IBAN of the bank account.
1916
+ sig { returns(String) }
1917
+ attr_accessor :iban
1918
+ sig { params(iban: String).void }
1919
+ def initialize(iban: nil); end
1920
+ end
1921
+ class Sofort < Stripe::RequestParams
1922
+ # Two-letter ISO code representing the country the bank account is located in.
1923
+ sig { returns(String) }
1924
+ attr_accessor :country
1925
+ sig { params(country: String).void }
1926
+ def initialize(country: nil); end
1927
+ end
1928
+ class Swish < Stripe::RequestParams; end
1929
+ class Twint < Stripe::RequestParams; end
1930
+ class UsBankAccount < Stripe::RequestParams
1931
+ # Account holder type: individual or company.
1932
+ sig { returns(T.nilable(String)) }
1933
+ attr_accessor :account_holder_type
1934
+ # Account number of the bank account.
1935
+ sig { returns(T.nilable(String)) }
1936
+ attr_accessor :account_number
1937
+ # Account type: checkings or savings. Defaults to checking if omitted.
1938
+ sig { returns(T.nilable(String)) }
1939
+ attr_accessor :account_type
1940
+ # The ID of a Financial Connections Account to use as a payment method.
1941
+ sig { returns(T.nilable(String)) }
1942
+ attr_accessor :financial_connections_account
1943
+ # Routing number of the bank account.
1944
+ sig { returns(T.nilable(String)) }
1945
+ attr_accessor :routing_number
1946
+ sig {
1947
+ params(account_holder_type: T.nilable(String), account_number: T.nilable(String), account_type: T.nilable(String), financial_connections_account: T.nilable(String), routing_number: T.nilable(String)).void
1948
+ }
1949
+ def initialize(
1950
+ account_holder_type: nil,
1951
+ account_number: nil,
1952
+ account_type: nil,
1953
+ financial_connections_account: nil,
1954
+ routing_number: nil
1955
+ ); end
1956
+ end
1957
+ class WechatPay < Stripe::RequestParams; end
1958
+ class Zip < Stripe::RequestParams; end
1959
+ # If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
1960
+ sig {
1961
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::AcssDebit))
1962
+ }
1963
+ attr_accessor :acss_debit
1964
+ # If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
1965
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Affirm)) }
1966
+ attr_accessor :affirm
1967
+ # If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
1968
+ sig {
1969
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::AfterpayClearpay))
1970
+ }
1971
+ attr_accessor :afterpay_clearpay
1972
+ # If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
1973
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Alipay)) }
1974
+ attr_accessor :alipay
1975
+ # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`.
1976
+ sig { returns(T.nilable(String)) }
1977
+ attr_accessor :allow_redisplay
1978
+ # If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
1979
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Alma)) }
1980
+ attr_accessor :alma
1981
+ # If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method.
1982
+ sig {
1983
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::AmazonPay))
1984
+ }
1985
+ attr_accessor :amazon_pay
1986
+ # If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
1987
+ sig {
1988
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::AuBecsDebit))
1989
+ }
1990
+ attr_accessor :au_becs_debit
1991
+ # If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
1992
+ sig {
1993
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::BacsDebit))
1994
+ }
1995
+ attr_accessor :bacs_debit
1996
+ # If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
1997
+ sig {
1998
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Bancontact))
1999
+ }
2000
+ attr_accessor :bancontact
2001
+ # If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method.
2002
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Billie)) }
2003
+ attr_accessor :billie
2004
+ # Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
2005
+ sig {
2006
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::BillingDetails))
2007
+ }
2008
+ attr_accessor :billing_details
2009
+ # If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
2010
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Blik)) }
2011
+ attr_accessor :blik
2012
+ # If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
2013
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Boleto)) }
2014
+ attr_accessor :boleto
2015
+ # If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
2016
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Cashapp)) }
2017
+ attr_accessor :cashapp
2018
+ # If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method.
2019
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Crypto)) }
2020
+ attr_accessor :crypto
2021
+ # If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
2022
+ sig {
2023
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::CustomerBalance))
2024
+ }
2025
+ attr_accessor :customer_balance
2026
+ # If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
2027
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Eps)) }
2028
+ attr_accessor :eps
2029
+ # If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
2030
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Fpx)) }
2031
+ attr_accessor :fpx
2032
+ # If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
2033
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Giropay)) }
2034
+ attr_accessor :giropay
2035
+ # If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
2036
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Grabpay)) }
2037
+ attr_accessor :grabpay
2038
+ # If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
2039
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Ideal)) }
2040
+ attr_accessor :ideal
2041
+ # If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
2042
+ sig {
2043
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::InteracPresent))
2044
+ }
2045
+ attr_accessor :interac_present
2046
+ # If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method.
2047
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::KakaoPay)) }
2048
+ attr_accessor :kakao_pay
2049
+ # If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
2050
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Klarna)) }
2051
+ attr_accessor :klarna
2052
+ # If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
2053
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Konbini)) }
2054
+ attr_accessor :konbini
2055
+ # If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method.
2056
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::KrCard)) }
2057
+ attr_accessor :kr_card
2058
+ # If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.
2059
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Link)) }
2060
+ attr_accessor :link
2061
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
2062
+ sig { returns(T.nilable(T::Hash[String, String])) }
2063
+ attr_accessor :metadata
2064
+ # If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method.
2065
+ sig {
2066
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Mobilepay))
2067
+ }
2068
+ attr_accessor :mobilepay
2069
+ # If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method.
2070
+ sig {
2071
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Multibanco))
2072
+ }
2073
+ attr_accessor :multibanco
2074
+ # If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method.
2075
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::NaverPay)) }
2076
+ attr_accessor :naver_pay
2077
+ # If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method.
2078
+ sig {
2079
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::NzBankAccount))
2080
+ }
2081
+ attr_accessor :nz_bank_account
2082
+ # If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
2083
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Oxxo)) }
2084
+ attr_accessor :oxxo
2085
+ # If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
2086
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::P24)) }
2087
+ attr_accessor :p24
2088
+ # If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method.
2089
+ sig {
2090
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::PayByBank))
2091
+ }
2092
+ attr_accessor :pay_by_bank
2093
+ # If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method.
2094
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Payco)) }
2095
+ attr_accessor :payco
2096
+ # If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.
2097
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Paynow)) }
2098
+ attr_accessor :paynow
2099
+ # If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.
2100
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Paypal)) }
2101
+ attr_accessor :paypal
2102
+ # If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.
2103
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Pix)) }
2104
+ attr_accessor :pix
2105
+ # If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.
2106
+ sig {
2107
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Promptpay))
2108
+ }
2109
+ attr_accessor :promptpay
2110
+ # Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.
2111
+ sig {
2112
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::RadarOptions))
2113
+ }
2114
+ attr_accessor :radar_options
2115
+ # If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method.
2116
+ sig {
2117
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::RevolutPay))
2118
+ }
2119
+ attr_accessor :revolut_pay
2120
+ # If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method.
2121
+ sig {
2122
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::SamsungPay))
2123
+ }
2124
+ attr_accessor :samsung_pay
2125
+ # If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method.
2126
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Satispay)) }
2127
+ attr_accessor :satispay
2128
+ # If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
2129
+ sig {
2130
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::SepaDebit))
2131
+ }
2132
+ attr_accessor :sepa_debit
2133
+ # If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.
2134
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Sofort)) }
2135
+ attr_accessor :sofort
2136
+ # If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method.
2137
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Swish)) }
2138
+ attr_accessor :swish
2139
+ # If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
2140
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Twint)) }
2141
+ attr_accessor :twint
2142
+ # The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
2143
+ sig { returns(String) }
2144
+ attr_accessor :type
2145
+ # If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.
2146
+ sig {
2147
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::UsBankAccount))
2148
+ }
2149
+ attr_accessor :us_bank_account
2150
+ # If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.
2151
+ sig {
2152
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::WechatPay))
2153
+ }
2154
+ attr_accessor :wechat_pay
2155
+ # If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.
2156
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Zip)) }
2157
+ attr_accessor :zip
2158
+ sig {
2159
+ params(acss_debit: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::AcssDebit), affirm: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Affirm), afterpay_clearpay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::AfterpayClearpay), alipay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Alipay), allow_redisplay: T.nilable(String), alma: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Alma), amazon_pay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::AmazonPay), au_becs_debit: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::AuBecsDebit), bacs_debit: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::BacsDebit), bancontact: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Bancontact), billie: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Billie), billing_details: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::BillingDetails), blik: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Blik), boleto: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Boleto), cashapp: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Cashapp), crypto: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Crypto), customer_balance: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::CustomerBalance), eps: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Eps), fpx: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Fpx), giropay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Giropay), grabpay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Grabpay), ideal: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Ideal), interac_present: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::InteracPresent), kakao_pay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::KakaoPay), klarna: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Klarna), konbini: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Konbini), kr_card: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::KrCard), link: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Link), metadata: T.nilable(T::Hash[String, String]), mobilepay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Mobilepay), multibanco: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Multibanco), naver_pay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::NaverPay), nz_bank_account: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::NzBankAccount), oxxo: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Oxxo), p24: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::P24), pay_by_bank: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::PayByBank), payco: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Payco), paynow: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Paynow), paypal: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Paypal), pix: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Pix), promptpay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Promptpay), radar_options: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::RadarOptions), revolut_pay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::RevolutPay), samsung_pay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::SamsungPay), satispay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Satispay), sepa_debit: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::SepaDebit), sofort: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Sofort), swish: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Swish), twint: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Twint), type: String, us_bank_account: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::UsBankAccount), wechat_pay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::WechatPay), zip: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData::Zip)).void
2160
+ }
2161
+ def initialize(
2162
+ acss_debit: nil,
2163
+ affirm: nil,
2164
+ afterpay_clearpay: nil,
2165
+ alipay: nil,
2166
+ allow_redisplay: nil,
2167
+ alma: nil,
2168
+ amazon_pay: nil,
2169
+ au_becs_debit: nil,
2170
+ bacs_debit: nil,
2171
+ bancontact: nil,
2172
+ billie: nil,
2173
+ billing_details: nil,
2174
+ blik: nil,
2175
+ boleto: nil,
2176
+ cashapp: nil,
2177
+ crypto: nil,
2178
+ customer_balance: nil,
2179
+ eps: nil,
2180
+ fpx: nil,
2181
+ giropay: nil,
2182
+ grabpay: nil,
2183
+ ideal: nil,
2184
+ interac_present: nil,
2185
+ kakao_pay: nil,
2186
+ klarna: nil,
2187
+ konbini: nil,
2188
+ kr_card: nil,
2189
+ link: nil,
2190
+ metadata: nil,
2191
+ mobilepay: nil,
2192
+ multibanco: nil,
2193
+ naver_pay: nil,
2194
+ nz_bank_account: nil,
2195
+ oxxo: nil,
2196
+ p24: nil,
2197
+ pay_by_bank: nil,
2198
+ payco: nil,
2199
+ paynow: nil,
2200
+ paypal: nil,
2201
+ pix: nil,
2202
+ promptpay: nil,
2203
+ radar_options: nil,
2204
+ revolut_pay: nil,
2205
+ samsung_pay: nil,
2206
+ satispay: nil,
2207
+ sepa_debit: nil,
2208
+ sofort: nil,
2209
+ swish: nil,
2210
+ twint: nil,
2211
+ type: nil,
2212
+ us_bank_account: nil,
2213
+ wechat_pay: nil,
2214
+ zip: nil
2215
+ ); end
2216
+ end
2217
+ class PaymentMethodOptions < Stripe::RequestParams
2218
+ class AcssDebit < Stripe::RequestParams
2219
+ class MandateOptions < Stripe::RequestParams
2220
+ # A URL for custom mandate text to render during confirmation step.
2221
+ # The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent,
2222
+ # or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent.
2223
+ sig { returns(T.nilable(T.nilable(String))) }
2224
+ attr_accessor :custom_mandate_url
2225
+ # List of Stripe products where this mandate can be selected automatically.
2226
+ sig { returns(T.nilable(T::Array[String])) }
2227
+ attr_accessor :default_for
2228
+ # Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'.
2229
+ sig { returns(T.nilable(String)) }
2230
+ attr_accessor :interval_description
2231
+ # Payment schedule for the mandate.
2232
+ sig { returns(T.nilable(String)) }
2233
+ attr_accessor :payment_schedule
2234
+ # Transaction type of the mandate.
2235
+ sig { returns(T.nilable(String)) }
2236
+ attr_accessor :transaction_type
2237
+ sig {
2238
+ params(custom_mandate_url: T.nilable(T.nilable(String)), default_for: T.nilable(T::Array[String]), interval_description: T.nilable(String), payment_schedule: T.nilable(String), transaction_type: T.nilable(String)).void
2239
+ }
2240
+ def initialize(
2241
+ custom_mandate_url: nil,
2242
+ default_for: nil,
2243
+ interval_description: nil,
2244
+ payment_schedule: nil,
2245
+ transaction_type: nil
2246
+ ); end
2247
+ end
2248
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
2249
+ sig { returns(T.nilable(String)) }
2250
+ attr_accessor :currency
2251
+ # Additional fields for Mandate creation
2252
+ sig {
2253
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::AcssDebit::MandateOptions))
2254
+ }
2255
+ attr_accessor :mandate_options
2256
+ # Bank account verification method.
2257
+ sig { returns(T.nilable(String)) }
2258
+ attr_accessor :verification_method
2259
+ sig {
2260
+ params(currency: T.nilable(String), mandate_options: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::AcssDebit::MandateOptions), verification_method: T.nilable(String)).void
2261
+ }
2262
+ def initialize(currency: nil, mandate_options: nil, verification_method: nil); end
2263
+ end
2264
+ class AmazonPay < Stripe::RequestParams; end
2265
+ class BacsDebit < Stripe::RequestParams
2266
+ class MandateOptions < Stripe::RequestParams
2267
+ # Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'.
2268
+ sig { returns(T.nilable(T.nilable(String))) }
2269
+ attr_accessor :reference_prefix
2270
+ sig { params(reference_prefix: T.nilable(T.nilable(String))).void }
2271
+ def initialize(reference_prefix: nil); end
2272
+ end
2273
+ # Additional fields for Mandate creation
2274
+ sig {
2275
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::BacsDebit::MandateOptions))
2276
+ }
2277
+ attr_accessor :mandate_options
2278
+ sig {
2279
+ params(mandate_options: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::BacsDebit::MandateOptions)).void
2280
+ }
2281
+ def initialize(mandate_options: nil); end
2282
+ end
2283
+ class Card < Stripe::RequestParams
2284
+ class MandateOptions < Stripe::RequestParams
2285
+ # Amount to be charged for future payments.
2286
+ sig { returns(Integer) }
2287
+ attr_accessor :amount
2288
+ # One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.
2289
+ sig { returns(String) }
2290
+ attr_accessor :amount_type
2291
+ # Currency in which future payments will be charged. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
2292
+ sig { returns(String) }
2293
+ attr_accessor :currency
2294
+ # A description of the mandate or subscription that is meant to be displayed to the customer.
2295
+ sig { returns(T.nilable(String)) }
2296
+ attr_accessor :description
2297
+ # End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date.
2298
+ sig { returns(T.nilable(Integer)) }
2299
+ attr_accessor :end_date
2300
+ # Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.
2301
+ sig { returns(String) }
2302
+ attr_accessor :interval
2303
+ # The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`.
2304
+ sig { returns(T.nilable(Integer)) }
2305
+ attr_accessor :interval_count
2306
+ # Unique identifier for the mandate or subscription.
2307
+ sig { returns(String) }
2308
+ attr_accessor :reference
2309
+ # Start date of the mandate or subscription. Start date should not be lesser than yesterday.
2310
+ sig { returns(Integer) }
2311
+ attr_accessor :start_date
2312
+ # Specifies the type of mandates supported. Possible values are `india`.
2313
+ sig { returns(T.nilable(T::Array[String])) }
2314
+ attr_accessor :supported_types
2315
+ sig {
2316
+ params(amount: Integer, amount_type: String, currency: String, description: T.nilable(String), end_date: T.nilable(Integer), interval: String, interval_count: T.nilable(Integer), reference: String, start_date: Integer, supported_types: T.nilable(T::Array[String])).void
2317
+ }
2318
+ def initialize(
2319
+ amount: nil,
2320
+ amount_type: nil,
2321
+ currency: nil,
2322
+ description: nil,
2323
+ end_date: nil,
2324
+ interval: nil,
2325
+ interval_count: nil,
2326
+ reference: nil,
2327
+ start_date: nil,
2328
+ supported_types: nil
2329
+ ); end
2330
+ end
2331
+ class ThreeDSecure < Stripe::RequestParams
2332
+ class NetworkOptions < Stripe::RequestParams
2333
+ class CartesBancaires < Stripe::RequestParams
2334
+ # The cryptogram calculation algorithm used by the card Issuer's ACS
2335
+ # to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`.
2336
+ # messageExtension: CB-AVALGO
2337
+ sig { returns(String) }
2338
+ attr_accessor :cb_avalgo
2339
+ # The exemption indicator returned from Cartes Bancaires in the ARes.
2340
+ # message extension: CB-EXEMPTION; string (4 characters)
2341
+ # This is a 3 byte bitmap (low significant byte first and most significant
2342
+ # bit first) that has been Base64 encoded
2343
+ sig { returns(T.nilable(String)) }
2344
+ attr_accessor :cb_exemption
2345
+ # The risk score returned from Cartes Bancaires in the ARes.
2346
+ # message extension: CB-SCORE; numeric value 0-99
2347
+ sig { returns(T.nilable(Integer)) }
2348
+ attr_accessor :cb_score
2349
+ sig {
2350
+ params(cb_avalgo: String, cb_exemption: T.nilable(String), cb_score: T.nilable(Integer)).void
2351
+ }
2352
+ def initialize(cb_avalgo: nil, cb_exemption: nil, cb_score: nil); end
2353
+ end
2354
+ # Cartes Bancaires-specific 3DS fields.
2355
+ sig {
2356
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions::CartesBancaires))
2357
+ }
2358
+ attr_accessor :cartes_bancaires
2359
+ sig {
2360
+ params(cartes_bancaires: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions::CartesBancaires)).void
2361
+ }
2362
+ def initialize(cartes_bancaires: nil); end
2363
+ end
2364
+ # The `transStatus` returned from the card Issuer’s ACS in the ARes.
2365
+ sig { returns(T.nilable(String)) }
2366
+ attr_accessor :ares_trans_status
2367
+ # The cryptogram, also known as the "authentication value" (AAV, CAVV or
2368
+ # AEVV). This value is 20 bytes, base64-encoded into a 28-character string.
2369
+ # (Most 3D Secure providers will return the base64-encoded version, which
2370
+ # is what you should specify here.)
2371
+ sig { returns(T.nilable(String)) }
2372
+ attr_accessor :cryptogram
2373
+ # The Electronic Commerce Indicator (ECI) is returned by your 3D Secure
2374
+ # provider and indicates what degree of authentication was performed.
2375
+ sig { returns(T.nilable(String)) }
2376
+ attr_accessor :electronic_commerce_indicator
2377
+ # Network specific 3DS fields. Network specific arguments require an
2378
+ # explicit card brand choice. The parameter `payment_method_options.card.network``
2379
+ # must be populated accordingly
2380
+ sig {
2381
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions))
2382
+ }
2383
+ attr_accessor :network_options
2384
+ # The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the
2385
+ # AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
2386
+ sig { returns(T.nilable(String)) }
2387
+ attr_accessor :requestor_challenge_indicator
2388
+ # For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server
2389
+ # Transaction ID (dsTransID).
2390
+ sig { returns(T.nilable(String)) }
2391
+ attr_accessor :transaction_id
2392
+ # The version of 3D Secure that was performed.
2393
+ sig { returns(T.nilable(String)) }
2394
+ attr_accessor :version
2395
+ sig {
2396
+ params(ares_trans_status: T.nilable(String), cryptogram: T.nilable(String), electronic_commerce_indicator: T.nilable(String), network_options: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions), requestor_challenge_indicator: T.nilable(String), transaction_id: T.nilable(String), version: T.nilable(String)).void
2397
+ }
2398
+ def initialize(
2399
+ ares_trans_status: nil,
2400
+ cryptogram: nil,
2401
+ electronic_commerce_indicator: nil,
2402
+ network_options: nil,
2403
+ requestor_challenge_indicator: nil,
2404
+ transaction_id: nil,
2405
+ version: nil
2406
+ ); end
2407
+ end
2408
+ # Configuration options for setting up an eMandate for cards issued in India.
2409
+ sig {
2410
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card::MandateOptions))
2411
+ }
2412
+ attr_accessor :mandate_options
2413
+ # When specified, this parameter signals that a card has been collected
2414
+ # as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This
2415
+ # parameter can only be provided during confirmation.
2416
+ sig { returns(T.nilable(T::Boolean)) }
2417
+ attr_accessor :moto
2418
+ # Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the SetupIntent. Can be only set confirm-time.
2419
+ sig { returns(T.nilable(String)) }
2420
+ attr_accessor :network
2421
+ # We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
2422
+ sig { returns(T.nilable(String)) }
2423
+ attr_accessor :request_three_d_secure
2424
+ # If 3D Secure authentication was performed with a third-party provider,
2425
+ # the authentication details to use for this setup.
2426
+ sig {
2427
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card::ThreeDSecure))
2428
+ }
2429
+ attr_accessor :three_d_secure
2430
+ sig {
2431
+ params(mandate_options: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card::MandateOptions), moto: T.nilable(T::Boolean), network: T.nilable(String), request_three_d_secure: T.nilable(String), three_d_secure: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card::ThreeDSecure)).void
2432
+ }
2433
+ def initialize(
2434
+ mandate_options: nil,
2435
+ moto: nil,
2436
+ network: nil,
2437
+ request_three_d_secure: nil,
2438
+ three_d_secure: nil
2439
+ ); end
2440
+ end
2441
+ class CardPresent < Stripe::RequestParams; end
2442
+ class Klarna < Stripe::RequestParams
2443
+ class OnDemand < Stripe::RequestParams
2444
+ # Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc.
2445
+ sig { returns(T.nilable(Integer)) }
2446
+ attr_accessor :average_amount
2447
+ # The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc.
2448
+ sig { returns(T.nilable(Integer)) }
2449
+ attr_accessor :maximum_amount
2450
+ # The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc.
2451
+ sig { returns(T.nilable(Integer)) }
2452
+ attr_accessor :minimum_amount
2453
+ # Interval at which the customer is making purchases
2454
+ sig { returns(T.nilable(String)) }
2455
+ attr_accessor :purchase_interval
2456
+ # The number of `purchase_interval` between charges
2457
+ sig { returns(T.nilable(Integer)) }
2458
+ attr_accessor :purchase_interval_count
2459
+ sig {
2460
+ params(average_amount: T.nilable(Integer), maximum_amount: T.nilable(Integer), minimum_amount: T.nilable(Integer), purchase_interval: T.nilable(String), purchase_interval_count: T.nilable(Integer)).void
2461
+ }
2462
+ def initialize(
2463
+ average_amount: nil,
2464
+ maximum_amount: nil,
2465
+ minimum_amount: nil,
2466
+ purchase_interval: nil,
2467
+ purchase_interval_count: nil
2468
+ ); end
2469
+ end
2470
+ class Subscription < Stripe::RequestParams
2471
+ class NextBilling < Stripe::RequestParams
2472
+ # The amount of the next charge for the subscription.
2473
+ sig { returns(Integer) }
2474
+ attr_accessor :amount
2475
+ # The date of the next charge for the subscription in YYYY-MM-DD format.
2476
+ sig { returns(String) }
2477
+ attr_accessor :date
2478
+ sig { params(amount: Integer, date: String).void }
2479
+ def initialize(amount: nil, date: nil); end
2480
+ end
2481
+ # Unit of time between subscription charges.
2482
+ sig { returns(String) }
2483
+ attr_accessor :interval
2484
+ # The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months.
2485
+ sig { returns(T.nilable(Integer)) }
2486
+ attr_accessor :interval_count
2487
+ # Name for subscription.
2488
+ sig { returns(T.nilable(String)) }
2489
+ attr_accessor :name
2490
+ # Describes the upcoming charge for this subscription.
2491
+ sig {
2492
+ returns(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Klarna::Subscription::NextBilling)
2493
+ }
2494
+ attr_accessor :next_billing
2495
+ # A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges.
2496
+ sig { returns(String) }
2497
+ attr_accessor :reference
2498
+ sig {
2499
+ params(interval: String, interval_count: T.nilable(Integer), name: T.nilable(String), next_billing: ::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Klarna::Subscription::NextBilling, reference: String).void
2500
+ }
2501
+ def initialize(
2502
+ interval: nil,
2503
+ interval_count: nil,
2504
+ name: nil,
2505
+ next_billing: nil,
2506
+ reference: nil
2507
+ ); end
2508
+ end
2509
+ # The currency of the SetupIntent. Three letter ISO currency code.
2510
+ sig { returns(T.nilable(String)) }
2511
+ attr_accessor :currency
2512
+ # On-demand details if setting up a payment method for on-demand payments.
2513
+ sig {
2514
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Klarna::OnDemand))
2515
+ }
2516
+ attr_accessor :on_demand
2517
+ # Preferred language of the Klarna authorization page that the customer is redirected to
2518
+ sig { returns(T.nilable(String)) }
2519
+ attr_accessor :preferred_locale
2520
+ # Subscription details if setting up or charging a subscription
2521
+ sig {
2522
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Klarna::Subscription]))))
2523
+ }
2524
+ attr_accessor :subscriptions
2525
+ sig {
2526
+ params(currency: T.nilable(String), on_demand: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Klarna::OnDemand), preferred_locale: T.nilable(String), subscriptions: T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Klarna::Subscription])))).void
2527
+ }
2528
+ def initialize(
2529
+ currency: nil,
2530
+ on_demand: nil,
2531
+ preferred_locale: nil,
2532
+ subscriptions: nil
2533
+ ); end
2534
+ end
2535
+ class Link < Stripe::RequestParams
2536
+ # [Deprecated] This is a legacy parameter that no longer has any function.
2537
+ sig { returns(T.nilable(String)) }
2538
+ attr_accessor :persistent_token
2539
+ sig { params(persistent_token: T.nilable(String)).void }
2540
+ def initialize(persistent_token: nil); end
2541
+ end
2542
+ class Paypal < Stripe::RequestParams
2543
+ # The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer.
2544
+ sig { returns(T.nilable(String)) }
2545
+ attr_accessor :billing_agreement_id
2546
+ sig { params(billing_agreement_id: T.nilable(String)).void }
2547
+ def initialize(billing_agreement_id: nil); end
2548
+ end
2549
+ class SepaDebit < Stripe::RequestParams
2550
+ class MandateOptions < Stripe::RequestParams
2551
+ # Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'.
2552
+ sig { returns(T.nilable(T.nilable(String))) }
2553
+ attr_accessor :reference_prefix
2554
+ sig { params(reference_prefix: T.nilable(T.nilable(String))).void }
2555
+ def initialize(reference_prefix: nil); end
2556
+ end
2557
+ # Additional fields for Mandate creation
2558
+ sig {
2559
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::SepaDebit::MandateOptions))
2560
+ }
2561
+ attr_accessor :mandate_options
2562
+ sig {
2563
+ params(mandate_options: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::SepaDebit::MandateOptions)).void
2564
+ }
2565
+ def initialize(mandate_options: nil); end
2566
+ end
2567
+ class UsBankAccount < Stripe::RequestParams
2568
+ class FinancialConnections < Stripe::RequestParams
2569
+ class Filters < Stripe::RequestParams
2570
+ # The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`.
2571
+ sig { returns(T.nilable(T::Array[String])) }
2572
+ attr_accessor :account_subcategories
2573
+ sig { params(account_subcategories: T.nilable(T::Array[String])).void }
2574
+ def initialize(account_subcategories: nil); end
2575
+ end
2576
+ # Provide filters for the linked accounts that the customer can select for the payment method.
2577
+ sig {
2578
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount::FinancialConnections::Filters))
2579
+ }
2580
+ attr_accessor :filters
2581
+ # The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`.
2582
+ sig { returns(T.nilable(T::Array[String])) }
2583
+ attr_accessor :permissions
2584
+ # List of data features that you would like to retrieve upon account creation.
2585
+ sig { returns(T.nilable(T::Array[String])) }
2586
+ attr_accessor :prefetch
2587
+ # For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
2588
+ sig { returns(T.nilable(String)) }
2589
+ attr_accessor :return_url
2590
+ sig {
2591
+ params(filters: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount::FinancialConnections::Filters), permissions: T.nilable(T::Array[String]), prefetch: T.nilable(T::Array[String]), return_url: T.nilable(String)).void
2592
+ }
2593
+ def initialize(filters: nil, permissions: nil, prefetch: nil, return_url: nil); end
2594
+ end
2595
+ class MandateOptions < Stripe::RequestParams
2596
+ # The method used to collect offline mandate customer acceptance.
2597
+ sig { returns(T.nilable(T.nilable(String))) }
2598
+ attr_accessor :collection_method
2599
+ sig { params(collection_method: T.nilable(T.nilable(String))).void }
2600
+ def initialize(collection_method: nil); end
2601
+ end
2602
+ class Networks < Stripe::RequestParams
2603
+ # Triggers validations to run across the selected networks
2604
+ sig { returns(T.nilable(T::Array[String])) }
2605
+ attr_accessor :requested
2606
+ sig { params(requested: T.nilable(T::Array[String])).void }
2607
+ def initialize(requested: nil); end
2608
+ end
2609
+ # Additional fields for Financial Connections Session creation
2610
+ sig {
2611
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount::FinancialConnections))
2612
+ }
2613
+ attr_accessor :financial_connections
2614
+ # Additional fields for Mandate creation
2615
+ sig {
2616
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount::MandateOptions))
2617
+ }
2618
+ attr_accessor :mandate_options
2619
+ # Additional fields for network related functions
2620
+ sig {
2621
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount::Networks))
2622
+ }
2623
+ attr_accessor :networks
2624
+ # Bank account verification method.
2625
+ sig { returns(T.nilable(String)) }
2626
+ attr_accessor :verification_method
2627
+ sig {
2628
+ params(financial_connections: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount::FinancialConnections), mandate_options: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount::MandateOptions), networks: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount::Networks), verification_method: T.nilable(String)).void
2629
+ }
2630
+ def initialize(
2631
+ financial_connections: nil,
2632
+ mandate_options: nil,
2633
+ networks: nil,
2634
+ verification_method: nil
2635
+ ); end
2636
+ end
2637
+ # If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options.
2638
+ sig {
2639
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::AcssDebit))
2640
+ }
2641
+ attr_accessor :acss_debit
2642
+ # If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options.
2643
+ sig {
2644
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::AmazonPay))
2645
+ }
2646
+ attr_accessor :amazon_pay
2647
+ # If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options.
2648
+ sig {
2649
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::BacsDebit))
2650
+ }
2651
+ attr_accessor :bacs_debit
2652
+ # Configuration for any card setup attempted on this SetupIntent.
2653
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card)) }
2654
+ attr_accessor :card
2655
+ # If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options.
2656
+ sig {
2657
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::CardPresent))
2658
+ }
2659
+ attr_accessor :card_present
2660
+ # If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method options.
2661
+ sig {
2662
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Klarna))
2663
+ }
2664
+ attr_accessor :klarna
2665
+ # If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options.
2666
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Link)) }
2667
+ attr_accessor :link
2668
+ # If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options.
2669
+ sig {
2670
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Paypal))
2671
+ }
2672
+ attr_accessor :paypal
2673
+ # If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options.
2674
+ sig {
2675
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::SepaDebit))
2676
+ }
2677
+ attr_accessor :sepa_debit
2678
+ # If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options.
2679
+ sig {
2680
+ returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount))
2681
+ }
2682
+ attr_accessor :us_bank_account
2683
+ sig {
2684
+ params(acss_debit: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::AcssDebit), amazon_pay: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::AmazonPay), bacs_debit: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::BacsDebit), card: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Card), card_present: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::CardPresent), klarna: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Klarna), link: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Link), paypal: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::Paypal), sepa_debit: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::SepaDebit), us_bank_account: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions::UsBankAccount)).void
2685
+ }
2686
+ def initialize(
2687
+ acss_debit: nil,
2688
+ amazon_pay: nil,
2689
+ bacs_debit: nil,
2690
+ card: nil,
2691
+ card_present: nil,
2692
+ klarna: nil,
2693
+ link: nil,
2694
+ paypal: nil,
2695
+ sepa_debit: nil,
2696
+ us_bank_account: nil
2697
+ ); end
2698
+ end
2699
+ # If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.
2700
+ #
2701
+ # It can only be used for this Stripe Account’s own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.
2702
+ sig { returns(T.nilable(T::Boolean)) }
2703
+ attr_accessor :attach_to_self
2704
+ # ID of the Customer this SetupIntent belongs to, if one exists.
2705
+ #
2706
+ # If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
2707
+ sig { returns(T.nilable(String)) }
2708
+ attr_accessor :customer
2709
+ # An arbitrary string attached to the object. Often useful for displaying to users.
2710
+ sig { returns(T.nilable(String)) }
2711
+ attr_accessor :description
2712
+ # Specifies which fields in the response should be expanded.
2713
+ sig { returns(T.nilable(T::Array[String])) }
2714
+ attr_accessor :expand
2715
+ # Indicates the directions of money movement for which this payment method is intended to be used.
2716
+ #
2717
+ # Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.
2718
+ sig { returns(T.nilable(T::Array[String])) }
2719
+ attr_accessor :flow_directions
2720
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
2721
+ sig { returns(T.nilable(T.nilable(T.any(String, T::Hash[String, String])))) }
2722
+ attr_accessor :metadata
2723
+ # ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent. To unset this field to null, pass in an empty string.
2724
+ sig { returns(T.nilable(String)) }
2725
+ attr_accessor :payment_method
2726
+ # The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this SetupIntent.
2727
+ sig { returns(T.nilable(String)) }
2728
+ attr_accessor :payment_method_configuration
2729
+ # When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method)
2730
+ # value in the SetupIntent.
2731
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData)) }
2732
+ attr_accessor :payment_method_data
2733
+ # Payment method-specific configuration for this SetupIntent.
2734
+ sig { returns(T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions)) }
2735
+ attr_accessor :payment_method_options
2736
+ # The list of payment method types (for example, card) that this SetupIntent can set up. If you don't provide this, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type).
2737
+ sig { returns(T.nilable(T::Array[String])) }
2738
+ attr_accessor :payment_method_types
2739
+ sig {
2740
+ params(attach_to_self: T.nilable(T::Boolean), customer: T.nilable(String), description: T.nilable(String), expand: T.nilable(T::Array[String]), flow_directions: T.nilable(T::Array[String]), metadata: T.nilable(T.nilable(T.any(String, T::Hash[String, String]))), payment_method: T.nilable(String), payment_method_configuration: T.nilable(String), payment_method_data: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::SetupIntent::UpdateParams::PaymentMethodOptions), payment_method_types: T.nilable(T::Array[String])).void
2741
+ }
2742
+ def initialize(
2743
+ attach_to_self: nil,
2744
+ customer: nil,
2745
+ description: nil,
2746
+ expand: nil,
2747
+ flow_directions: nil,
2748
+ metadata: nil,
2749
+ payment_method: nil,
2750
+ payment_method_configuration: nil,
2751
+ payment_method_data: nil,
2752
+ payment_method_options: nil,
2753
+ payment_method_types: nil
2754
+ ); end
2755
+ end
2756
+ class CancelParams < Stripe::RequestParams
2757
+ # Reason for canceling this SetupIntent. Possible values are: `abandoned`, `requested_by_customer`, or `duplicate`
2758
+ sig { returns(T.nilable(String)) }
2759
+ attr_accessor :cancellation_reason
2760
+ # Specifies which fields in the response should be expanded.
2761
+ sig { returns(T.nilable(T::Array[String])) }
2762
+ attr_accessor :expand
2763
+ sig {
2764
+ params(cancellation_reason: T.nilable(String), expand: T.nilable(T::Array[String])).void
2765
+ }
2766
+ def initialize(cancellation_reason: nil, expand: nil); end
2767
+ end
2768
+ class ConfirmParams < Stripe::RequestParams
2769
+ class MandateData < Stripe::RequestParams
2770
+ class CustomerAcceptance < Stripe::RequestParams
2771
+ class Offline < Stripe::RequestParams; end
2772
+ class Online < Stripe::RequestParams
2773
+ # The IP address from which the Mandate was accepted by the customer.
2774
+ sig { returns(T.nilable(String)) }
2775
+ attr_accessor :ip_address
2776
+ # The user agent of the browser from which the Mandate was accepted by the customer.
2777
+ sig { returns(T.nilable(String)) }
2778
+ attr_accessor :user_agent
2779
+ sig { params(ip_address: T.nilable(String), user_agent: T.nilable(String)).void }
2780
+ def initialize(ip_address: nil, user_agent: nil); end
2781
+ end
2782
+ # The time at which the customer accepted the Mandate.
2783
+ sig { returns(T.nilable(Integer)) }
2784
+ attr_accessor :accepted_at
2785
+ # If this is a Mandate accepted offline, this hash contains details about the offline acceptance.
2786
+ sig {
2787
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::MandateData::CustomerAcceptance::Offline))
2788
+ }
2789
+ attr_accessor :offline
2790
+ # If this is a Mandate accepted online, this hash contains details about the online acceptance.
2791
+ sig {
2792
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::MandateData::CustomerAcceptance::Online))
2793
+ }
2794
+ attr_accessor :online
2795
+ # The type of customer acceptance information included with the Mandate. One of `online` or `offline`.
2796
+ sig { returns(String) }
2797
+ attr_accessor :type
2798
+ sig {
2799
+ params(accepted_at: T.nilable(Integer), offline: T.nilable(::Stripe::SetupIntent::ConfirmParams::MandateData::CustomerAcceptance::Offline), online: T.nilable(::Stripe::SetupIntent::ConfirmParams::MandateData::CustomerAcceptance::Online), type: String).void
2800
+ }
2801
+ def initialize(accepted_at: nil, offline: nil, online: nil, type: nil); end
2802
+ end
2803
+ # This hash contains details about the customer acceptance of the Mandate.
2804
+ sig {
2805
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::MandateData::CustomerAcceptance))
2806
+ }
2807
+ attr_accessor :customer_acceptance
2808
+ sig {
2809
+ params(customer_acceptance: T.nilable(::Stripe::SetupIntent::ConfirmParams::MandateData::CustomerAcceptance)).void
2810
+ }
2811
+ def initialize(customer_acceptance: nil); end
2812
+ end
2813
+ class PaymentMethodData < Stripe::RequestParams
2814
+ class AcssDebit < Stripe::RequestParams
2815
+ # Customer's bank account number.
2816
+ sig { returns(String) }
2817
+ attr_accessor :account_number
2818
+ # Institution number of the customer's bank.
2819
+ sig { returns(String) }
2820
+ attr_accessor :institution_number
2821
+ # Transit number of the customer's bank.
2822
+ sig { returns(String) }
2823
+ attr_accessor :transit_number
2824
+ sig {
2825
+ params(account_number: String, institution_number: String, transit_number: String).void
2826
+ }
2827
+ def initialize(account_number: nil, institution_number: nil, transit_number: nil); end
2828
+ end
2829
+ class Affirm < Stripe::RequestParams; end
2830
+ class AfterpayClearpay < Stripe::RequestParams; end
2831
+ class Alipay < Stripe::RequestParams; end
2832
+ class Alma < Stripe::RequestParams; end
2833
+ class AmazonPay < Stripe::RequestParams; end
2834
+ class AuBecsDebit < Stripe::RequestParams
2835
+ # The account number for the bank account.
2836
+ sig { returns(String) }
2837
+ attr_accessor :account_number
2838
+ # Bank-State-Branch number of the bank account.
2839
+ sig { returns(String) }
2840
+ attr_accessor :bsb_number
2841
+ sig { params(account_number: String, bsb_number: String).void }
2842
+ def initialize(account_number: nil, bsb_number: nil); end
2843
+ end
2844
+ class BacsDebit < Stripe::RequestParams
2845
+ # Account number of the bank account that the funds will be debited from.
2846
+ sig { returns(T.nilable(String)) }
2847
+ attr_accessor :account_number
2848
+ # Sort code of the bank account. (e.g., `10-20-30`)
2849
+ sig { returns(T.nilable(String)) }
2850
+ attr_accessor :sort_code
2851
+ sig { params(account_number: T.nilable(String), sort_code: T.nilable(String)).void }
2852
+ def initialize(account_number: nil, sort_code: nil); end
2853
+ end
2854
+ class Bancontact < Stripe::RequestParams; end
2855
+ class Billie < Stripe::RequestParams; end
2856
+ class BillingDetails < Stripe::RequestParams
2857
+ class Address < Stripe::RequestParams
2858
+ # City, district, suburb, town, or village.
2859
+ sig { returns(T.nilable(String)) }
2860
+ attr_accessor :city
2861
+ # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
2862
+ sig { returns(T.nilable(String)) }
2863
+ attr_accessor :country
2864
+ # Address line 1 (e.g., street, PO Box, or company name).
2865
+ sig { returns(T.nilable(String)) }
2866
+ attr_accessor :line1
2867
+ # Address line 2 (e.g., apartment, suite, unit, or building).
2868
+ sig { returns(T.nilable(String)) }
2869
+ attr_accessor :line2
2870
+ # ZIP or postal code.
2871
+ sig { returns(T.nilable(String)) }
2872
+ attr_accessor :postal_code
2873
+ # State, county, province, or region.
2874
+ sig { returns(T.nilable(String)) }
2875
+ attr_accessor :state
2876
+ sig {
2877
+ params(city: T.nilable(String), country: T.nilable(String), line1: T.nilable(String), line2: T.nilable(String), postal_code: T.nilable(String), state: T.nilable(String)).void
2878
+ }
2879
+ def initialize(
2880
+ city: nil,
2881
+ country: nil,
2882
+ line1: nil,
2883
+ line2: nil,
2884
+ postal_code: nil,
2885
+ state: nil
2886
+ ); end
2887
+ end
2888
+ # Billing address.
2889
+ sig {
2890
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::BillingDetails::Address))))
2891
+ }
2892
+ attr_accessor :address
2893
+ # Email address.
2894
+ sig { returns(T.nilable(T.nilable(String))) }
2895
+ attr_accessor :email
2896
+ # Full name.
2897
+ sig { returns(T.nilable(T.nilable(String))) }
2898
+ attr_accessor :name
2899
+ # Billing phone number (including extension).
2900
+ sig { returns(T.nilable(T.nilable(String))) }
2901
+ attr_accessor :phone
2902
+ # Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers.
2903
+ sig { returns(T.nilable(String)) }
2904
+ attr_accessor :tax_id
2905
+ sig {
2906
+ params(address: T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::BillingDetails::Address))), email: T.nilable(T.nilable(String)), name: T.nilable(T.nilable(String)), phone: T.nilable(T.nilable(String)), tax_id: T.nilable(String)).void
2907
+ }
2908
+ def initialize(address: nil, email: nil, name: nil, phone: nil, tax_id: nil); end
2909
+ end
2910
+ class Blik < Stripe::RequestParams; end
2911
+ class Boleto < Stripe::RequestParams
2912
+ # The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers)
2913
+ sig { returns(String) }
2914
+ attr_accessor :tax_id
2915
+ sig { params(tax_id: String).void }
2916
+ def initialize(tax_id: nil); end
2917
+ end
2918
+ class Cashapp < Stripe::RequestParams; end
2919
+ class Crypto < Stripe::RequestParams; end
2920
+ class CustomerBalance < Stripe::RequestParams; end
2921
+ class Eps < Stripe::RequestParams
2922
+ # The customer's bank.
2923
+ sig { returns(T.nilable(String)) }
2924
+ attr_accessor :bank
2925
+ sig { params(bank: T.nilable(String)).void }
2926
+ def initialize(bank: nil); end
2927
+ end
2928
+ class Fpx < Stripe::RequestParams
2929
+ # Account holder type for FPX transaction
2930
+ sig { returns(T.nilable(String)) }
2931
+ attr_accessor :account_holder_type
2932
+ # The customer's bank.
2933
+ sig { returns(String) }
2934
+ attr_accessor :bank
2935
+ sig { params(account_holder_type: T.nilable(String), bank: String).void }
2936
+ def initialize(account_holder_type: nil, bank: nil); end
2937
+ end
2938
+ class Giropay < Stripe::RequestParams; end
2939
+ class Grabpay < Stripe::RequestParams; end
2940
+ class Ideal < Stripe::RequestParams
2941
+ # The customer's bank. Only use this parameter for existing customers. Don't use it for new customers.
2942
+ sig { returns(T.nilable(String)) }
2943
+ attr_accessor :bank
2944
+ sig { params(bank: T.nilable(String)).void }
2945
+ def initialize(bank: nil); end
2946
+ end
2947
+ class InteracPresent < Stripe::RequestParams; end
2948
+ class KakaoPay < Stripe::RequestParams; end
2949
+ class Klarna < Stripe::RequestParams
2950
+ class Dob < Stripe::RequestParams
2951
+ # The day of birth, between 1 and 31.
2952
+ sig { returns(Integer) }
2953
+ attr_accessor :day
2954
+ # The month of birth, between 1 and 12.
2955
+ sig { returns(Integer) }
2956
+ attr_accessor :month
2957
+ # The four-digit year of birth.
2958
+ sig { returns(Integer) }
2959
+ attr_accessor :year
2960
+ sig { params(day: Integer, month: Integer, year: Integer).void }
2961
+ def initialize(day: nil, month: nil, year: nil); end
2962
+ end
2963
+ # Customer's date of birth
2964
+ sig {
2965
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Klarna::Dob))
2966
+ }
2967
+ attr_accessor :dob
2968
+ sig {
2969
+ params(dob: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Klarna::Dob)).void
2970
+ }
2971
+ def initialize(dob: nil); end
2972
+ end
2973
+ class Konbini < Stripe::RequestParams; end
2974
+ class KrCard < Stripe::RequestParams; end
2975
+ class Link < Stripe::RequestParams; end
2976
+ class Mobilepay < Stripe::RequestParams; end
2977
+ class Multibanco < Stripe::RequestParams; end
2978
+ class NaverPay < Stripe::RequestParams
2979
+ # Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`.
2980
+ sig { returns(T.nilable(String)) }
2981
+ attr_accessor :funding
2982
+ sig { params(funding: T.nilable(String)).void }
2983
+ def initialize(funding: nil); end
2984
+ end
2985
+ class NzBankAccount < Stripe::RequestParams
2986
+ # The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod’s billing details.
2987
+ sig { returns(T.nilable(String)) }
2988
+ attr_accessor :account_holder_name
2989
+ # The account number for the bank account.
2990
+ sig { returns(String) }
2991
+ attr_accessor :account_number
2992
+ # The numeric code for the bank account's bank.
2993
+ sig { returns(String) }
2994
+ attr_accessor :bank_code
2995
+ # The numeric code for the bank account's bank branch.
2996
+ sig { returns(String) }
2997
+ attr_accessor :branch_code
2998
+ # Attribute for param field reference
2999
+ sig { returns(T.nilable(String)) }
3000
+ attr_accessor :reference
3001
+ # The suffix of the bank account number.
3002
+ sig { returns(String) }
3003
+ attr_accessor :suffix
3004
+ sig {
3005
+ params(account_holder_name: T.nilable(String), account_number: String, bank_code: String, branch_code: String, reference: T.nilable(String), suffix: String).void
3006
+ }
3007
+ def initialize(
3008
+ account_holder_name: nil,
3009
+ account_number: nil,
3010
+ bank_code: nil,
3011
+ branch_code: nil,
3012
+ reference: nil,
3013
+ suffix: nil
3014
+ ); end
3015
+ end
3016
+ class Oxxo < Stripe::RequestParams; end
3017
+ class P24 < Stripe::RequestParams
3018
+ # The customer's bank.
3019
+ sig { returns(T.nilable(String)) }
3020
+ attr_accessor :bank
3021
+ sig { params(bank: T.nilable(String)).void }
3022
+ def initialize(bank: nil); end
3023
+ end
3024
+ class PayByBank < Stripe::RequestParams; end
3025
+ class Payco < Stripe::RequestParams; end
3026
+ class Paynow < Stripe::RequestParams; end
3027
+ class Paypal < Stripe::RequestParams; end
3028
+ class Pix < Stripe::RequestParams; end
3029
+ class Promptpay < Stripe::RequestParams; end
3030
+ class RadarOptions < Stripe::RequestParams
3031
+ # A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
3032
+ sig { returns(T.nilable(String)) }
3033
+ attr_accessor :session
3034
+ sig { params(session: T.nilable(String)).void }
3035
+ def initialize(session: nil); end
3036
+ end
3037
+ class RevolutPay < Stripe::RequestParams; end
3038
+ class SamsungPay < Stripe::RequestParams; end
3039
+ class Satispay < Stripe::RequestParams; end
3040
+ class SepaDebit < Stripe::RequestParams
3041
+ # IBAN of the bank account.
3042
+ sig { returns(String) }
3043
+ attr_accessor :iban
3044
+ sig { params(iban: String).void }
3045
+ def initialize(iban: nil); end
3046
+ end
3047
+ class Sofort < Stripe::RequestParams
3048
+ # Two-letter ISO code representing the country the bank account is located in.
3049
+ sig { returns(String) }
3050
+ attr_accessor :country
3051
+ sig { params(country: String).void }
3052
+ def initialize(country: nil); end
3053
+ end
3054
+ class Swish < Stripe::RequestParams; end
3055
+ class Twint < Stripe::RequestParams; end
3056
+ class UsBankAccount < Stripe::RequestParams
3057
+ # Account holder type: individual or company.
3058
+ sig { returns(T.nilable(String)) }
3059
+ attr_accessor :account_holder_type
3060
+ # Account number of the bank account.
3061
+ sig { returns(T.nilable(String)) }
3062
+ attr_accessor :account_number
3063
+ # Account type: checkings or savings. Defaults to checking if omitted.
3064
+ sig { returns(T.nilable(String)) }
3065
+ attr_accessor :account_type
3066
+ # The ID of a Financial Connections Account to use as a payment method.
3067
+ sig { returns(T.nilable(String)) }
3068
+ attr_accessor :financial_connections_account
3069
+ # Routing number of the bank account.
3070
+ sig { returns(T.nilable(String)) }
3071
+ attr_accessor :routing_number
3072
+ sig {
3073
+ params(account_holder_type: T.nilable(String), account_number: T.nilable(String), account_type: T.nilable(String), financial_connections_account: T.nilable(String), routing_number: T.nilable(String)).void
3074
+ }
3075
+ def initialize(
3076
+ account_holder_type: nil,
3077
+ account_number: nil,
3078
+ account_type: nil,
3079
+ financial_connections_account: nil,
3080
+ routing_number: nil
3081
+ ); end
3082
+ end
3083
+ class WechatPay < Stripe::RequestParams; end
3084
+ class Zip < Stripe::RequestParams; end
3085
+ # If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
3086
+ sig {
3087
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::AcssDebit))
3088
+ }
3089
+ attr_accessor :acss_debit
3090
+ # If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
3091
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Affirm)) }
3092
+ attr_accessor :affirm
3093
+ # If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
3094
+ sig {
3095
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::AfterpayClearpay))
3096
+ }
3097
+ attr_accessor :afterpay_clearpay
3098
+ # If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
3099
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Alipay)) }
3100
+ attr_accessor :alipay
3101
+ # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`.
3102
+ sig { returns(T.nilable(String)) }
3103
+ attr_accessor :allow_redisplay
3104
+ # If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
3105
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Alma)) }
3106
+ attr_accessor :alma
3107
+ # If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method.
3108
+ sig {
3109
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::AmazonPay))
3110
+ }
3111
+ attr_accessor :amazon_pay
3112
+ # If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
3113
+ sig {
3114
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::AuBecsDebit))
3115
+ }
3116
+ attr_accessor :au_becs_debit
3117
+ # If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
3118
+ sig {
3119
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::BacsDebit))
3120
+ }
3121
+ attr_accessor :bacs_debit
3122
+ # If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
3123
+ sig {
3124
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Bancontact))
3125
+ }
3126
+ attr_accessor :bancontact
3127
+ # If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method.
3128
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Billie)) }
3129
+ attr_accessor :billie
3130
+ # Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
3131
+ sig {
3132
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::BillingDetails))
3133
+ }
3134
+ attr_accessor :billing_details
3135
+ # If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
3136
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Blik)) }
3137
+ attr_accessor :blik
3138
+ # If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
3139
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Boleto)) }
3140
+ attr_accessor :boleto
3141
+ # If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
3142
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Cashapp)) }
3143
+ attr_accessor :cashapp
3144
+ # If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method.
3145
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Crypto)) }
3146
+ attr_accessor :crypto
3147
+ # If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
3148
+ sig {
3149
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::CustomerBalance))
3150
+ }
3151
+ attr_accessor :customer_balance
3152
+ # If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
3153
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Eps)) }
3154
+ attr_accessor :eps
3155
+ # If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
3156
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Fpx)) }
3157
+ attr_accessor :fpx
3158
+ # If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
3159
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Giropay)) }
3160
+ attr_accessor :giropay
3161
+ # If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
3162
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Grabpay)) }
3163
+ attr_accessor :grabpay
3164
+ # If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
3165
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Ideal)) }
3166
+ attr_accessor :ideal
3167
+ # If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
3168
+ sig {
3169
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::InteracPresent))
3170
+ }
3171
+ attr_accessor :interac_present
3172
+ # If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method.
3173
+ sig {
3174
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::KakaoPay))
3175
+ }
3176
+ attr_accessor :kakao_pay
3177
+ # If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
3178
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Klarna)) }
3179
+ attr_accessor :klarna
3180
+ # If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
3181
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Konbini)) }
3182
+ attr_accessor :konbini
3183
+ # If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method.
3184
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::KrCard)) }
3185
+ attr_accessor :kr_card
3186
+ # If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.
3187
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Link)) }
3188
+ attr_accessor :link
3189
+ # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
3190
+ sig { returns(T.nilable(T::Hash[String, String])) }
3191
+ attr_accessor :metadata
3192
+ # If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method.
3193
+ sig {
3194
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Mobilepay))
3195
+ }
3196
+ attr_accessor :mobilepay
3197
+ # If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method.
3198
+ sig {
3199
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Multibanco))
3200
+ }
3201
+ attr_accessor :multibanco
3202
+ # If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method.
3203
+ sig {
3204
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::NaverPay))
3205
+ }
3206
+ attr_accessor :naver_pay
3207
+ # If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method.
3208
+ sig {
3209
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::NzBankAccount))
3210
+ }
3211
+ attr_accessor :nz_bank_account
3212
+ # If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
3213
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Oxxo)) }
3214
+ attr_accessor :oxxo
3215
+ # If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
3216
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::P24)) }
3217
+ attr_accessor :p24
3218
+ # If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method.
3219
+ sig {
3220
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::PayByBank))
3221
+ }
3222
+ attr_accessor :pay_by_bank
3223
+ # If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method.
3224
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Payco)) }
3225
+ attr_accessor :payco
3226
+ # If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.
3227
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Paynow)) }
3228
+ attr_accessor :paynow
3229
+ # If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.
3230
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Paypal)) }
3231
+ attr_accessor :paypal
3232
+ # If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.
3233
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Pix)) }
3234
+ attr_accessor :pix
3235
+ # If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.
3236
+ sig {
3237
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Promptpay))
3238
+ }
3239
+ attr_accessor :promptpay
3240
+ # Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information.
3241
+ sig {
3242
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::RadarOptions))
3243
+ }
3244
+ attr_accessor :radar_options
3245
+ # If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method.
3246
+ sig {
3247
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::RevolutPay))
3248
+ }
3249
+ attr_accessor :revolut_pay
3250
+ # If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method.
3251
+ sig {
3252
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::SamsungPay))
3253
+ }
3254
+ attr_accessor :samsung_pay
3255
+ # If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method.
3256
+ sig {
3257
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Satispay))
3258
+ }
3259
+ attr_accessor :satispay
3260
+ # If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
3261
+ sig {
3262
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::SepaDebit))
3263
+ }
3264
+ attr_accessor :sepa_debit
3265
+ # If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.
3266
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Sofort)) }
3267
+ attr_accessor :sofort
3268
+ # If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method.
3269
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Swish)) }
3270
+ attr_accessor :swish
3271
+ # If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
3272
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Twint)) }
3273
+ attr_accessor :twint
3274
+ # The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
3275
+ sig { returns(String) }
3276
+ attr_accessor :type
3277
+ # If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.
3278
+ sig {
3279
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::UsBankAccount))
3280
+ }
3281
+ attr_accessor :us_bank_account
3282
+ # If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.
3283
+ sig {
3284
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::WechatPay))
3285
+ }
3286
+ attr_accessor :wechat_pay
3287
+ # If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.
3288
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Zip)) }
3289
+ attr_accessor :zip
3290
+ sig {
3291
+ params(acss_debit: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::AcssDebit), affirm: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Affirm), afterpay_clearpay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::AfterpayClearpay), alipay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Alipay), allow_redisplay: T.nilable(String), alma: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Alma), amazon_pay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::AmazonPay), au_becs_debit: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::AuBecsDebit), bacs_debit: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::BacsDebit), bancontact: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Bancontact), billie: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Billie), billing_details: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::BillingDetails), blik: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Blik), boleto: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Boleto), cashapp: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Cashapp), crypto: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Crypto), customer_balance: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::CustomerBalance), eps: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Eps), fpx: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Fpx), giropay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Giropay), grabpay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Grabpay), ideal: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Ideal), interac_present: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::InteracPresent), kakao_pay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::KakaoPay), klarna: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Klarna), konbini: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Konbini), kr_card: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::KrCard), link: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Link), metadata: T.nilable(T::Hash[String, String]), mobilepay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Mobilepay), multibanco: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Multibanco), naver_pay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::NaverPay), nz_bank_account: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::NzBankAccount), oxxo: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Oxxo), p24: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::P24), pay_by_bank: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::PayByBank), payco: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Payco), paynow: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Paynow), paypal: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Paypal), pix: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Pix), promptpay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Promptpay), radar_options: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::RadarOptions), revolut_pay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::RevolutPay), samsung_pay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::SamsungPay), satispay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Satispay), sepa_debit: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::SepaDebit), sofort: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Sofort), swish: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Swish), twint: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Twint), type: String, us_bank_account: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::UsBankAccount), wechat_pay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::WechatPay), zip: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData::Zip)).void
3292
+ }
3293
+ def initialize(
3294
+ acss_debit: nil,
3295
+ affirm: nil,
3296
+ afterpay_clearpay: nil,
3297
+ alipay: nil,
3298
+ allow_redisplay: nil,
3299
+ alma: nil,
3300
+ amazon_pay: nil,
3301
+ au_becs_debit: nil,
3302
+ bacs_debit: nil,
3303
+ bancontact: nil,
3304
+ billie: nil,
3305
+ billing_details: nil,
3306
+ blik: nil,
3307
+ boleto: nil,
3308
+ cashapp: nil,
3309
+ crypto: nil,
3310
+ customer_balance: nil,
3311
+ eps: nil,
3312
+ fpx: nil,
3313
+ giropay: nil,
3314
+ grabpay: nil,
3315
+ ideal: nil,
3316
+ interac_present: nil,
3317
+ kakao_pay: nil,
3318
+ klarna: nil,
3319
+ konbini: nil,
3320
+ kr_card: nil,
3321
+ link: nil,
3322
+ metadata: nil,
3323
+ mobilepay: nil,
3324
+ multibanco: nil,
3325
+ naver_pay: nil,
3326
+ nz_bank_account: nil,
3327
+ oxxo: nil,
3328
+ p24: nil,
3329
+ pay_by_bank: nil,
3330
+ payco: nil,
3331
+ paynow: nil,
3332
+ paypal: nil,
3333
+ pix: nil,
3334
+ promptpay: nil,
3335
+ radar_options: nil,
3336
+ revolut_pay: nil,
3337
+ samsung_pay: nil,
3338
+ satispay: nil,
3339
+ sepa_debit: nil,
3340
+ sofort: nil,
3341
+ swish: nil,
3342
+ twint: nil,
3343
+ type: nil,
3344
+ us_bank_account: nil,
3345
+ wechat_pay: nil,
3346
+ zip: nil
3347
+ ); end
3348
+ end
3349
+ class PaymentMethodOptions < Stripe::RequestParams
3350
+ class AcssDebit < Stripe::RequestParams
3351
+ class MandateOptions < Stripe::RequestParams
3352
+ # A URL for custom mandate text to render during confirmation step.
3353
+ # The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent,
3354
+ # or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent.
3355
+ sig { returns(T.nilable(T.nilable(String))) }
3356
+ attr_accessor :custom_mandate_url
3357
+ # List of Stripe products where this mandate can be selected automatically.
3358
+ sig { returns(T.nilable(T::Array[String])) }
3359
+ attr_accessor :default_for
3360
+ # Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'.
3361
+ sig { returns(T.nilable(String)) }
3362
+ attr_accessor :interval_description
3363
+ # Payment schedule for the mandate.
3364
+ sig { returns(T.nilable(String)) }
3365
+ attr_accessor :payment_schedule
3366
+ # Transaction type of the mandate.
3367
+ sig { returns(T.nilable(String)) }
3368
+ attr_accessor :transaction_type
3369
+ sig {
3370
+ params(custom_mandate_url: T.nilable(T.nilable(String)), default_for: T.nilable(T::Array[String]), interval_description: T.nilable(String), payment_schedule: T.nilable(String), transaction_type: T.nilable(String)).void
3371
+ }
3372
+ def initialize(
3373
+ custom_mandate_url: nil,
3374
+ default_for: nil,
3375
+ interval_description: nil,
3376
+ payment_schedule: nil,
3377
+ transaction_type: nil
3378
+ ); end
3379
+ end
3380
+ # Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
3381
+ sig { returns(T.nilable(String)) }
3382
+ attr_accessor :currency
3383
+ # Additional fields for Mandate creation
3384
+ sig {
3385
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::AcssDebit::MandateOptions))
3386
+ }
3387
+ attr_accessor :mandate_options
3388
+ # Bank account verification method.
3389
+ sig { returns(T.nilable(String)) }
3390
+ attr_accessor :verification_method
3391
+ sig {
3392
+ params(currency: T.nilable(String), mandate_options: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::AcssDebit::MandateOptions), verification_method: T.nilable(String)).void
3393
+ }
3394
+ def initialize(currency: nil, mandate_options: nil, verification_method: nil); end
3395
+ end
3396
+ class AmazonPay < Stripe::RequestParams; end
3397
+ class BacsDebit < Stripe::RequestParams
3398
+ class MandateOptions < Stripe::RequestParams
3399
+ # Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'DDIC' or 'STRIPE'.
3400
+ sig { returns(T.nilable(T.nilable(String))) }
3401
+ attr_accessor :reference_prefix
3402
+ sig { params(reference_prefix: T.nilable(T.nilable(String))).void }
3403
+ def initialize(reference_prefix: nil); end
3404
+ end
3405
+ # Additional fields for Mandate creation
3406
+ sig {
3407
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::BacsDebit::MandateOptions))
3408
+ }
3409
+ attr_accessor :mandate_options
3410
+ sig {
3411
+ params(mandate_options: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::BacsDebit::MandateOptions)).void
3412
+ }
3413
+ def initialize(mandate_options: nil); end
3414
+ end
3415
+ class Card < Stripe::RequestParams
3416
+ class MandateOptions < Stripe::RequestParams
3417
+ # Amount to be charged for future payments.
3418
+ sig { returns(Integer) }
3419
+ attr_accessor :amount
3420
+ # One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.
3421
+ sig { returns(String) }
3422
+ attr_accessor :amount_type
3423
+ # Currency in which future payments will be charged. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).
3424
+ sig { returns(String) }
3425
+ attr_accessor :currency
3426
+ # A description of the mandate or subscription that is meant to be displayed to the customer.
3427
+ sig { returns(T.nilable(String)) }
3428
+ attr_accessor :description
3429
+ # End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date.
3430
+ sig { returns(T.nilable(Integer)) }
3431
+ attr_accessor :end_date
3432
+ # Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.
3433
+ sig { returns(String) }
3434
+ attr_accessor :interval
3435
+ # The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`.
3436
+ sig { returns(T.nilable(Integer)) }
3437
+ attr_accessor :interval_count
3438
+ # Unique identifier for the mandate or subscription.
3439
+ sig { returns(String) }
3440
+ attr_accessor :reference
3441
+ # Start date of the mandate or subscription. Start date should not be lesser than yesterday.
3442
+ sig { returns(Integer) }
3443
+ attr_accessor :start_date
3444
+ # Specifies the type of mandates supported. Possible values are `india`.
3445
+ sig { returns(T.nilable(T::Array[String])) }
3446
+ attr_accessor :supported_types
3447
+ sig {
3448
+ params(amount: Integer, amount_type: String, currency: String, description: T.nilable(String), end_date: T.nilable(Integer), interval: String, interval_count: T.nilable(Integer), reference: String, start_date: Integer, supported_types: T.nilable(T::Array[String])).void
3449
+ }
3450
+ def initialize(
3451
+ amount: nil,
3452
+ amount_type: nil,
3453
+ currency: nil,
3454
+ description: nil,
3455
+ end_date: nil,
3456
+ interval: nil,
3457
+ interval_count: nil,
3458
+ reference: nil,
3459
+ start_date: nil,
3460
+ supported_types: nil
3461
+ ); end
3462
+ end
3463
+ class ThreeDSecure < Stripe::RequestParams
3464
+ class NetworkOptions < Stripe::RequestParams
3465
+ class CartesBancaires < Stripe::RequestParams
3466
+ # The cryptogram calculation algorithm used by the card Issuer's ACS
3467
+ # to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`.
3468
+ # messageExtension: CB-AVALGO
3469
+ sig { returns(String) }
3470
+ attr_accessor :cb_avalgo
3471
+ # The exemption indicator returned from Cartes Bancaires in the ARes.
3472
+ # message extension: CB-EXEMPTION; string (4 characters)
3473
+ # This is a 3 byte bitmap (low significant byte first and most significant
3474
+ # bit first) that has been Base64 encoded
3475
+ sig { returns(T.nilable(String)) }
3476
+ attr_accessor :cb_exemption
3477
+ # The risk score returned from Cartes Bancaires in the ARes.
3478
+ # message extension: CB-SCORE; numeric value 0-99
3479
+ sig { returns(T.nilable(Integer)) }
3480
+ attr_accessor :cb_score
3481
+ sig {
3482
+ params(cb_avalgo: String, cb_exemption: T.nilable(String), cb_score: T.nilable(Integer)).void
3483
+ }
3484
+ def initialize(cb_avalgo: nil, cb_exemption: nil, cb_score: nil); end
3485
+ end
3486
+ # Cartes Bancaires-specific 3DS fields.
3487
+ sig {
3488
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions::CartesBancaires))
3489
+ }
3490
+ attr_accessor :cartes_bancaires
3491
+ sig {
3492
+ params(cartes_bancaires: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions::CartesBancaires)).void
3493
+ }
3494
+ def initialize(cartes_bancaires: nil); end
3495
+ end
3496
+ # The `transStatus` returned from the card Issuer’s ACS in the ARes.
3497
+ sig { returns(T.nilable(String)) }
3498
+ attr_accessor :ares_trans_status
3499
+ # The cryptogram, also known as the "authentication value" (AAV, CAVV or
3500
+ # AEVV). This value is 20 bytes, base64-encoded into a 28-character string.
3501
+ # (Most 3D Secure providers will return the base64-encoded version, which
3502
+ # is what you should specify here.)
3503
+ sig { returns(T.nilable(String)) }
3504
+ attr_accessor :cryptogram
3505
+ # The Electronic Commerce Indicator (ECI) is returned by your 3D Secure
3506
+ # provider and indicates what degree of authentication was performed.
3507
+ sig { returns(T.nilable(String)) }
3508
+ attr_accessor :electronic_commerce_indicator
3509
+ # Network specific 3DS fields. Network specific arguments require an
3510
+ # explicit card brand choice. The parameter `payment_method_options.card.network``
3511
+ # must be populated accordingly
3512
+ sig {
3513
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions))
3514
+ }
3515
+ attr_accessor :network_options
3516
+ # The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the
3517
+ # AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
3518
+ sig { returns(T.nilable(String)) }
3519
+ attr_accessor :requestor_challenge_indicator
3520
+ # For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server
3521
+ # Transaction ID (dsTransID).
3522
+ sig { returns(T.nilable(String)) }
3523
+ attr_accessor :transaction_id
3524
+ # The version of 3D Secure that was performed.
3525
+ sig { returns(T.nilable(String)) }
3526
+ attr_accessor :version
3527
+ sig {
3528
+ params(ares_trans_status: T.nilable(String), cryptogram: T.nilable(String), electronic_commerce_indicator: T.nilable(String), network_options: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card::ThreeDSecure::NetworkOptions), requestor_challenge_indicator: T.nilable(String), transaction_id: T.nilable(String), version: T.nilable(String)).void
3529
+ }
3530
+ def initialize(
3531
+ ares_trans_status: nil,
3532
+ cryptogram: nil,
3533
+ electronic_commerce_indicator: nil,
3534
+ network_options: nil,
3535
+ requestor_challenge_indicator: nil,
3536
+ transaction_id: nil,
3537
+ version: nil
3538
+ ); end
3539
+ end
3540
+ # Configuration options for setting up an eMandate for cards issued in India.
3541
+ sig {
3542
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card::MandateOptions))
3543
+ }
3544
+ attr_accessor :mandate_options
3545
+ # When specified, this parameter signals that a card has been collected
3546
+ # as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This
3547
+ # parameter can only be provided during confirmation.
3548
+ sig { returns(T.nilable(T::Boolean)) }
3549
+ attr_accessor :moto
3550
+ # Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the SetupIntent. Can be only set confirm-time.
3551
+ sig { returns(T.nilable(String)) }
3552
+ attr_accessor :network
3553
+ # We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://stripe.com/docs/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. If not provided, this value defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://stripe.com/docs/payments/3d-secure/authentication-flow#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
3554
+ sig { returns(T.nilable(String)) }
3555
+ attr_accessor :request_three_d_secure
3556
+ # If 3D Secure authentication was performed with a third-party provider,
3557
+ # the authentication details to use for this setup.
3558
+ sig {
3559
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card::ThreeDSecure))
3560
+ }
3561
+ attr_accessor :three_d_secure
3562
+ sig {
3563
+ params(mandate_options: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card::MandateOptions), moto: T.nilable(T::Boolean), network: T.nilable(String), request_three_d_secure: T.nilable(String), three_d_secure: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card::ThreeDSecure)).void
3564
+ }
3565
+ def initialize(
3566
+ mandate_options: nil,
3567
+ moto: nil,
3568
+ network: nil,
3569
+ request_three_d_secure: nil,
3570
+ three_d_secure: nil
3571
+ ); end
3572
+ end
3573
+ class CardPresent < Stripe::RequestParams; end
3574
+ class Klarna < Stripe::RequestParams
3575
+ class OnDemand < Stripe::RequestParams
3576
+ # Your average amount value. You can use a value across your customer base, or segment based on customer type, country, etc.
3577
+ sig { returns(T.nilable(Integer)) }
3578
+ attr_accessor :average_amount
3579
+ # The maximum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc.
3580
+ sig { returns(T.nilable(Integer)) }
3581
+ attr_accessor :maximum_amount
3582
+ # The lowest or minimum value you may charge a customer per purchase. You can use a value across your customer base, or segment based on customer type, country, etc.
3583
+ sig { returns(T.nilable(Integer)) }
3584
+ attr_accessor :minimum_amount
3585
+ # Interval at which the customer is making purchases
3586
+ sig { returns(T.nilable(String)) }
3587
+ attr_accessor :purchase_interval
3588
+ # The number of `purchase_interval` between charges
3589
+ sig { returns(T.nilable(Integer)) }
3590
+ attr_accessor :purchase_interval_count
3591
+ sig {
3592
+ params(average_amount: T.nilable(Integer), maximum_amount: T.nilable(Integer), minimum_amount: T.nilable(Integer), purchase_interval: T.nilable(String), purchase_interval_count: T.nilable(Integer)).void
3593
+ }
3594
+ def initialize(
3595
+ average_amount: nil,
3596
+ maximum_amount: nil,
3597
+ minimum_amount: nil,
3598
+ purchase_interval: nil,
3599
+ purchase_interval_count: nil
3600
+ ); end
3601
+ end
3602
+ class Subscription < Stripe::RequestParams
3603
+ class NextBilling < Stripe::RequestParams
3604
+ # The amount of the next charge for the subscription.
3605
+ sig { returns(Integer) }
3606
+ attr_accessor :amount
3607
+ # The date of the next charge for the subscription in YYYY-MM-DD format.
3608
+ sig { returns(String) }
3609
+ attr_accessor :date
3610
+ sig { params(amount: Integer, date: String).void }
3611
+ def initialize(amount: nil, date: nil); end
3612
+ end
3613
+ # Unit of time between subscription charges.
3614
+ sig { returns(String) }
3615
+ attr_accessor :interval
3616
+ # The number of intervals (specified in the `interval` attribute) between subscription charges. For example, `interval=month` and `interval_count=3` charges every 3 months.
3617
+ sig { returns(T.nilable(Integer)) }
3618
+ attr_accessor :interval_count
3619
+ # Name for subscription.
3620
+ sig { returns(T.nilable(String)) }
3621
+ attr_accessor :name
3622
+ # Describes the upcoming charge for this subscription.
3623
+ sig {
3624
+ returns(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Klarna::Subscription::NextBilling)
3625
+ }
3626
+ attr_accessor :next_billing
3627
+ # A non-customer-facing reference to correlate subscription charges in the Klarna app. Use a value that persists across subscription charges.
3628
+ sig { returns(String) }
3629
+ attr_accessor :reference
3630
+ sig {
3631
+ params(interval: String, interval_count: T.nilable(Integer), name: T.nilable(String), next_billing: ::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Klarna::Subscription::NextBilling, reference: String).void
3632
+ }
3633
+ def initialize(
3634
+ interval: nil,
3635
+ interval_count: nil,
3636
+ name: nil,
3637
+ next_billing: nil,
3638
+ reference: nil
3639
+ ); end
3640
+ end
3641
+ # The currency of the SetupIntent. Three letter ISO currency code.
3642
+ sig { returns(T.nilable(String)) }
3643
+ attr_accessor :currency
3644
+ # On-demand details if setting up a payment method for on-demand payments.
3645
+ sig {
3646
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Klarna::OnDemand))
3647
+ }
3648
+ attr_accessor :on_demand
3649
+ # Preferred language of the Klarna authorization page that the customer is redirected to
3650
+ sig { returns(T.nilable(String)) }
3651
+ attr_accessor :preferred_locale
3652
+ # Subscription details if setting up or charging a subscription
3653
+ sig {
3654
+ returns(T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Klarna::Subscription]))))
3655
+ }
3656
+ attr_accessor :subscriptions
3657
+ sig {
3658
+ params(currency: T.nilable(String), on_demand: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Klarna::OnDemand), preferred_locale: T.nilable(String), subscriptions: T.nilable(T.nilable(T.any(String, T::Array[::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Klarna::Subscription])))).void
3659
+ }
3660
+ def initialize(
3661
+ currency: nil,
3662
+ on_demand: nil,
3663
+ preferred_locale: nil,
3664
+ subscriptions: nil
3665
+ ); end
3666
+ end
3667
+ class Link < Stripe::RequestParams
3668
+ # [Deprecated] This is a legacy parameter that no longer has any function.
3669
+ sig { returns(T.nilable(String)) }
3670
+ attr_accessor :persistent_token
3671
+ sig { params(persistent_token: T.nilable(String)).void }
3672
+ def initialize(persistent_token: nil); end
3673
+ end
3674
+ class Paypal < Stripe::RequestParams
3675
+ # The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer.
3676
+ sig { returns(T.nilable(String)) }
3677
+ attr_accessor :billing_agreement_id
3678
+ sig { params(billing_agreement_id: T.nilable(String)).void }
3679
+ def initialize(billing_agreement_id: nil); end
3680
+ end
3681
+ class SepaDebit < Stripe::RequestParams
3682
+ class MandateOptions < Stripe::RequestParams
3683
+ # Prefix used to generate the Mandate reference. Must be at most 12 characters long. Must consist of only uppercase letters, numbers, spaces, or the following special characters: '/', '_', '-', '&', '.'. Cannot begin with 'STRIPE'.
3684
+ sig { returns(T.nilable(T.nilable(String))) }
3685
+ attr_accessor :reference_prefix
3686
+ sig { params(reference_prefix: T.nilable(T.nilable(String))).void }
3687
+ def initialize(reference_prefix: nil); end
3688
+ end
3689
+ # Additional fields for Mandate creation
3690
+ sig {
3691
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::SepaDebit::MandateOptions))
3692
+ }
3693
+ attr_accessor :mandate_options
3694
+ sig {
3695
+ params(mandate_options: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::SepaDebit::MandateOptions)).void
3696
+ }
3697
+ def initialize(mandate_options: nil); end
3698
+ end
3699
+ class UsBankAccount < Stripe::RequestParams
3700
+ class FinancialConnections < Stripe::RequestParams
3701
+ class Filters < Stripe::RequestParams
3702
+ # The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`.
3703
+ sig { returns(T.nilable(T::Array[String])) }
3704
+ attr_accessor :account_subcategories
3705
+ sig { params(account_subcategories: T.nilable(T::Array[String])).void }
3706
+ def initialize(account_subcategories: nil); end
3707
+ end
3708
+ # Provide filters for the linked accounts that the customer can select for the payment method.
3709
+ sig {
3710
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount::FinancialConnections::Filters))
3711
+ }
3712
+ attr_accessor :filters
3713
+ # The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`.
3714
+ sig { returns(T.nilable(T::Array[String])) }
3715
+ attr_accessor :permissions
3716
+ # List of data features that you would like to retrieve upon account creation.
3717
+ sig { returns(T.nilable(T::Array[String])) }
3718
+ attr_accessor :prefetch
3719
+ # For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app.
3720
+ sig { returns(T.nilable(String)) }
3721
+ attr_accessor :return_url
3722
+ sig {
3723
+ params(filters: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount::FinancialConnections::Filters), permissions: T.nilable(T::Array[String]), prefetch: T.nilable(T::Array[String]), return_url: T.nilable(String)).void
3724
+ }
3725
+ def initialize(filters: nil, permissions: nil, prefetch: nil, return_url: nil); end
3726
+ end
3727
+ class MandateOptions < Stripe::RequestParams
3728
+ # The method used to collect offline mandate customer acceptance.
3729
+ sig { returns(T.nilable(T.nilable(String))) }
3730
+ attr_accessor :collection_method
3731
+ sig { params(collection_method: T.nilable(T.nilable(String))).void }
3732
+ def initialize(collection_method: nil); end
3733
+ end
3734
+ class Networks < Stripe::RequestParams
3735
+ # Triggers validations to run across the selected networks
3736
+ sig { returns(T.nilable(T::Array[String])) }
3737
+ attr_accessor :requested
3738
+ sig { params(requested: T.nilable(T::Array[String])).void }
3739
+ def initialize(requested: nil); end
3740
+ end
3741
+ # Additional fields for Financial Connections Session creation
3742
+ sig {
3743
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount::FinancialConnections))
3744
+ }
3745
+ attr_accessor :financial_connections
3746
+ # Additional fields for Mandate creation
3747
+ sig {
3748
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount::MandateOptions))
3749
+ }
3750
+ attr_accessor :mandate_options
3751
+ # Additional fields for network related functions
3752
+ sig {
3753
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount::Networks))
3754
+ }
3755
+ attr_accessor :networks
3756
+ # Bank account verification method.
3757
+ sig { returns(T.nilable(String)) }
3758
+ attr_accessor :verification_method
3759
+ sig {
3760
+ params(financial_connections: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount::FinancialConnections), mandate_options: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount::MandateOptions), networks: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount::Networks), verification_method: T.nilable(String)).void
3761
+ }
3762
+ def initialize(
3763
+ financial_connections: nil,
3764
+ mandate_options: nil,
3765
+ networks: nil,
3766
+ verification_method: nil
3767
+ ); end
3768
+ end
3769
+ # If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options.
3770
+ sig {
3771
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::AcssDebit))
3772
+ }
3773
+ attr_accessor :acss_debit
3774
+ # If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options.
3775
+ sig {
3776
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::AmazonPay))
3777
+ }
3778
+ attr_accessor :amazon_pay
3779
+ # If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options.
3780
+ sig {
3781
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::BacsDebit))
3782
+ }
3783
+ attr_accessor :bacs_debit
3784
+ # Configuration for any card setup attempted on this SetupIntent.
3785
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card)) }
3786
+ attr_accessor :card
3787
+ # If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options.
3788
+ sig {
3789
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::CardPresent))
3790
+ }
3791
+ attr_accessor :card_present
3792
+ # If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method options.
3793
+ sig {
3794
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Klarna))
3795
+ }
3796
+ attr_accessor :klarna
3797
+ # If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options.
3798
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Link)) }
3799
+ attr_accessor :link
3800
+ # If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options.
3801
+ sig {
3802
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Paypal))
3803
+ }
3804
+ attr_accessor :paypal
3805
+ # If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options.
3806
+ sig {
3807
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::SepaDebit))
3808
+ }
3809
+ attr_accessor :sepa_debit
3810
+ # If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options.
3811
+ sig {
3812
+ returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount))
3813
+ }
3814
+ attr_accessor :us_bank_account
3815
+ sig {
3816
+ params(acss_debit: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::AcssDebit), amazon_pay: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::AmazonPay), bacs_debit: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::BacsDebit), card: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Card), card_present: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::CardPresent), klarna: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Klarna), link: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Link), paypal: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::Paypal), sepa_debit: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::SepaDebit), us_bank_account: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions::UsBankAccount)).void
3817
+ }
3818
+ def initialize(
3819
+ acss_debit: nil,
3820
+ amazon_pay: nil,
3821
+ bacs_debit: nil,
3822
+ card: nil,
3823
+ card_present: nil,
3824
+ klarna: nil,
3825
+ link: nil,
3826
+ paypal: nil,
3827
+ sepa_debit: nil,
3828
+ us_bank_account: nil
3829
+ ); end
3830
+ end
3831
+ # ID of the ConfirmationToken used to confirm this SetupIntent.
3832
+ #
3833
+ # If the provided ConfirmationToken contains properties that are also being provided in this request, such as `payment_method`, then the values in this request will take precedence.
3834
+ sig { returns(T.nilable(String)) }
3835
+ attr_accessor :confirmation_token
3836
+ # Specifies which fields in the response should be expanded.
3837
+ sig { returns(T.nilable(T::Array[String])) }
3838
+ attr_accessor :expand
3839
+ # Attribute for param field mandate_data
3840
+ sig {
3841
+ returns(T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::ConfirmParams::MandateData))))
3842
+ }
3843
+ attr_accessor :mandate_data
3844
+ # ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent.
3845
+ sig { returns(T.nilable(String)) }
3846
+ attr_accessor :payment_method
3847
+ # When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://stripe.com/docs/api/setup_intents/object#setup_intent_object-payment_method)
3848
+ # value in the SetupIntent.
3849
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData)) }
3850
+ attr_accessor :payment_method_data
3851
+ # Payment method-specific configuration for this SetupIntent.
3852
+ sig { returns(T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions)) }
3853
+ attr_accessor :payment_method_options
3854
+ # The URL to redirect your customer back to after they authenticate on the payment method's app or site.
3855
+ # If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme.
3856
+ # This parameter is only used for cards and other redirect-based payment methods.
3857
+ sig { returns(T.nilable(String)) }
3858
+ attr_accessor :return_url
3859
+ # Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.
3860
+ sig { returns(T.nilable(T::Boolean)) }
3861
+ attr_accessor :use_stripe_sdk
3862
+ sig {
3863
+ params(confirmation_token: T.nilable(String), expand: T.nilable(T::Array[String]), mandate_data: T.nilable(T.nilable(T.any(String, ::Stripe::SetupIntent::ConfirmParams::MandateData))), payment_method: T.nilable(String), payment_method_data: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodData), payment_method_options: T.nilable(::Stripe::SetupIntent::ConfirmParams::PaymentMethodOptions), return_url: T.nilable(String), use_stripe_sdk: T.nilable(T::Boolean)).void
3864
+ }
3865
+ def initialize(
3866
+ confirmation_token: nil,
3867
+ expand: nil,
3868
+ mandate_data: nil,
3869
+ payment_method: nil,
3870
+ payment_method_data: nil,
3871
+ payment_method_options: nil,
3872
+ return_url: nil,
3873
+ use_stripe_sdk: nil
3874
+ ); end
3875
+ end
3876
+ class VerifyMicrodepositsParams < Stripe::RequestParams
3877
+ # Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account.
3878
+ sig { returns(T.nilable(T::Array[Integer])) }
3879
+ attr_accessor :amounts
3880
+ # A six-character code starting with SM present in the microdeposit sent to the bank account.
3881
+ sig { returns(T.nilable(String)) }
3882
+ attr_accessor :descriptor_code
3883
+ # Specifies which fields in the response should be expanded.
3884
+ sig { returns(T.nilable(T::Array[String])) }
3885
+ attr_accessor :expand
3886
+ sig {
3887
+ params(amounts: T.nilable(T::Array[Integer]), descriptor_code: T.nilable(String), expand: T.nilable(T::Array[String])).void
3888
+ }
3889
+ def initialize(amounts: nil, descriptor_code: nil, expand: nil); end
3890
+ end
3891
+ # You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action.
3892
+ #
3893
+ # After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead.
3894
+ sig {
3895
+ params(params: T.any(::Stripe::SetupIntent::CancelParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SetupIntent)
3896
+ }
3897
+ def cancel(params = {}, opts = {}); end
3898
+
3899
+ # You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action.
3900
+ #
3901
+ # After you cancel it, setup is abandoned and any operations on the SetupIntent fail with an error. You can't cancel the SetupIntent for a Checkout Session. [Expire the Checkout Session](https://docs.stripe.com/docs/api/checkout/sessions/expire) instead.
3902
+ sig {
3903
+ params(intent: String, params: T.any(::Stripe::SetupIntent::CancelParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SetupIntent)
3904
+ }
3905
+ def self.cancel(intent, params = {}, opts = {}); end
3906
+
3907
+ # Confirm that your customer intends to set up the current or
3908
+ # provided payment method. For example, you would confirm a SetupIntent
3909
+ # when a customer hits the “Save” button on a payment method management
3910
+ # page on your website.
3911
+ #
3912
+ # If the selected payment method does not require any additional
3913
+ # steps from the customer, the SetupIntent will transition to the
3914
+ # succeeded status.
3915
+ #
3916
+ # Otherwise, it will transition to the requires_action status and
3917
+ # suggest additional actions via next_action. If setup fails,
3918
+ # the SetupIntent will transition to the
3919
+ # requires_payment_method status or the canceled status if the
3920
+ # confirmation limit is reached.
3921
+ sig {
3922
+ params(params: T.any(::Stripe::SetupIntent::ConfirmParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SetupIntent)
3923
+ }
3924
+ def confirm(params = {}, opts = {}); end
3925
+
3926
+ # Confirm that your customer intends to set up the current or
3927
+ # provided payment method. For example, you would confirm a SetupIntent
3928
+ # when a customer hits the “Save” button on a payment method management
3929
+ # page on your website.
3930
+ #
3931
+ # If the selected payment method does not require any additional
3932
+ # steps from the customer, the SetupIntent will transition to the
3933
+ # succeeded status.
3934
+ #
3935
+ # Otherwise, it will transition to the requires_action status and
3936
+ # suggest additional actions via next_action. If setup fails,
3937
+ # the SetupIntent will transition to the
3938
+ # requires_payment_method status or the canceled status if the
3939
+ # confirmation limit is reached.
3940
+ sig {
3941
+ params(intent: String, params: T.any(::Stripe::SetupIntent::ConfirmParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SetupIntent)
3942
+ }
3943
+ def self.confirm(intent, params = {}, opts = {}); end
3944
+
3945
+ # Creates a SetupIntent object.
3946
+ #
3947
+ # After you create the SetupIntent, attach a payment method and [confirm](https://docs.stripe.com/docs/api/setup_intents/confirm)
3948
+ # it to collect any required permissions to charge the payment method later.
3949
+ sig {
3950
+ params(params: T.any(::Stripe::SetupIntent::CreateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SetupIntent)
3951
+ }
3952
+ def self.create(params = {}, opts = {}); end
3953
+
3954
+ # Returns a list of SetupIntents.
3955
+ sig {
3956
+ params(params: T.any(::Stripe::SetupIntent::ListParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::ListObject)
3957
+ }
3958
+ def self.list(params = {}, opts = {}); end
3959
+
3960
+ # Updates a SetupIntent object.
3961
+ sig {
3962
+ params(intent: String, params: T.any(::Stripe::SetupIntent::UpdateParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SetupIntent)
3963
+ }
3964
+ def self.update(intent, params = {}, opts = {}); end
3965
+
3966
+ # Verifies microdeposits on a SetupIntent object.
3967
+ sig {
3968
+ params(params: T.any(::Stripe::SetupIntent::VerifyMicrodepositsParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SetupIntent)
3969
+ }
3970
+ def verify_microdeposits(params = {}, opts = {}); end
3971
+
3972
+ # Verifies microdeposits on a SetupIntent object.
3973
+ sig {
3974
+ params(intent: String, params: T.any(::Stripe::SetupIntent::VerifyMicrodepositsParams, T::Hash[T.untyped, T.untyped]), opts: T.untyped).returns(Stripe::SetupIntent)
3975
+ }
3976
+ def self.verify_microdeposits(intent, params = {}, opts = {}); end
3977
+ end
3978
+ end