// File generated from our OpenAPI spec declare module 'stripe' { namespace Stripe { interface SetupIntentCreateParams { /** * If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. * * 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. */ attach_to_self?: boolean; /** * When you enable this parameter, this SetupIntent accepts payment methods that you enable in the Dashboard and that are compatible with its other parameters. */ automatic_payment_methods?: SetupIntentCreateParams.AutomaticPaymentMethods; /** * 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. */ confirm?: boolean; /** * ID of the ConfirmationToken used to confirm this SetupIntent. * * 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. */ confirmation_token?: string; /** * ID of the Customer this SetupIntent belongs to, if one exists. * * 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. */ customer?: string; /** * An arbitrary string attached to the object. Often useful for displaying to users. */ description?: string; /** * Specifies which fields in the response should be expanded. */ expand?: Array; /** * Indicates the directions of money movement for which this payment method is intended to be used. * * 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. */ flow_directions?: Array; /** * 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). */ mandate_data?: Stripe.Emptyable; /** * 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`. */ metadata?: Stripe.MetadataParam; /** * The Stripe account ID created for this SetupIntent. */ on_behalf_of?: string; /** * ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent. */ payment_method?: string; /** * The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this SetupIntent. */ payment_method_configuration?: string; /** * 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) * value in the SetupIntent. */ payment_method_data?: SetupIntentCreateParams.PaymentMethodData; /** * Payment method-specific configuration for this SetupIntent. */ payment_method_options?: SetupIntentCreateParams.PaymentMethodOptions; /** * 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). */ payment_method_types?: Array; /** * 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). */ return_url?: string; /** * If you populate this hash, this SetupIntent generates a `single_use` mandate after successful completion. */ single_use?: SetupIntentCreateParams.SingleUse; /** * Indicates how the payment method is intended to be used in the future. If not provided, this value defaults to `off_session`. */ usage?: SetupIntentCreateParams.Usage; /** * Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions. */ use_stripe_sdk?: boolean; } namespace SetupIntentCreateParams { interface AutomaticPaymentMethods { /** * Controls whether this SetupIntent will accept redirect-based payment methods. * * 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. */ allow_redirects?: AutomaticPaymentMethods.AllowRedirects; /** * Whether this feature is enabled. */ enabled: boolean; } namespace AutomaticPaymentMethods { type AllowRedirects = 'always' | 'never'; } type FlowDirection = 'inbound' | 'outbound'; interface MandateData { /** * This hash contains details about the customer acceptance of the Mandate. */ customer_acceptance: MandateData.CustomerAcceptance; } namespace MandateData { interface CustomerAcceptance { /** * The time at which the customer accepted the Mandate. */ accepted_at?: number; /** * If this is a Mandate accepted offline, this hash contains details about the offline acceptance. */ offline?: CustomerAcceptance.Offline; /** * If this is a Mandate accepted online, this hash contains details about the online acceptance. */ online?: CustomerAcceptance.Online; /** * The type of customer acceptance information included with the Mandate. One of `online` or `offline`. */ type: CustomerAcceptance.Type; } namespace CustomerAcceptance { interface Offline {} interface Online { /** * The IP address from which the Mandate was accepted by the customer. */ ip_address: string; /** * The user agent of the browser from which the Mandate was accepted by the customer. */ user_agent: string; } type Type = 'offline' | 'online'; } } interface PaymentMethodData { /** * If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. */ acss_debit?: PaymentMethodData.AcssDebit; /** * If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. */ affirm?: PaymentMethodData.Affirm; /** * If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. */ afterpay_clearpay?: PaymentMethodData.AfterpayClearpay; /** * If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. */ alipay?: PaymentMethodData.Alipay; /** * 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`. */ allow_redisplay?: PaymentMethodData.AllowRedisplay; /** * If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. */ alma?: PaymentMethodData.Alma; /** * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. */ amazon_pay?: PaymentMethodData.AmazonPay; /** * If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. */ au_becs_debit?: PaymentMethodData.AuBecsDebit; /** * If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. */ bacs_debit?: PaymentMethodData.BacsDebit; /** * If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. */ bancontact?: PaymentMethodData.Bancontact; /** * Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. */ billing_details?: PaymentMethodData.BillingDetails; /** * If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. */ blik?: PaymentMethodData.Blik; /** * If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. */ boleto?: PaymentMethodData.Boleto; /** * If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. */ cashapp?: PaymentMethodData.Cashapp; /** * If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. */ customer_balance?: PaymentMethodData.CustomerBalance; /** * If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. */ eps?: PaymentMethodData.Eps; /** * If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. */ fpx?: PaymentMethodData.Fpx; /** * If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. */ giropay?: PaymentMethodData.Giropay; /** * If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. */ grabpay?: PaymentMethodData.Grabpay; /** * If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. */ ideal?: PaymentMethodData.Ideal; /** * If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. */ interac_present?: PaymentMethodData.InteracPresent; /** * If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. */ kakao_pay?: PaymentMethodData.KakaoPay; /** * If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. */ klarna?: PaymentMethodData.Klarna; /** * If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. */ konbini?: PaymentMethodData.Konbini; /** * If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. */ kr_card?: PaymentMethodData.KrCard; /** * If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. */ link?: PaymentMethodData.Link; /** * 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`. */ metadata?: Stripe.MetadataParam; /** * If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. */ mobilepay?: PaymentMethodData.Mobilepay; /** * If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. */ multibanco?: PaymentMethodData.Multibanco; /** * If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. */ naver_pay?: PaymentMethodData.NaverPay; /** * If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. */ oxxo?: PaymentMethodData.Oxxo; /** * If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. */ p24?: PaymentMethodData.P24; /** * If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. */ pay_by_bank?: PaymentMethodData.PayByBank; /** * If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. */ payco?: PaymentMethodData.Payco; /** * If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. */ paynow?: PaymentMethodData.Paynow; /** * If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. */ paypal?: PaymentMethodData.Paypal; /** * If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. */ pix?: PaymentMethodData.Pix; /** * If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. */ promptpay?: PaymentMethodData.Promptpay; /** * Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. */ radar_options?: PaymentMethodData.RadarOptions; /** * If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. */ revolut_pay?: PaymentMethodData.RevolutPay; /** * If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. */ samsung_pay?: PaymentMethodData.SamsungPay; /** * If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. */ sepa_debit?: PaymentMethodData.SepaDebit; /** * If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. */ sofort?: PaymentMethodData.Sofort; /** * If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. */ swish?: PaymentMethodData.Swish; /** * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. */ twint?: PaymentMethodData.Twint; /** * 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. */ type: PaymentMethodData.Type; /** * If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. */ us_bank_account?: PaymentMethodData.UsBankAccount; /** * If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. */ wechat_pay?: PaymentMethodData.WechatPay; /** * If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. */ zip?: PaymentMethodData.Zip; } namespace PaymentMethodData { interface AcssDebit { /** * Customer's bank account number. */ account_number: string; /** * Institution number of the customer's bank. */ institution_number: string; /** * Transit number of the customer's bank. */ transit_number: string; } interface Affirm {} interface AfterpayClearpay {} interface Alipay {} type AllowRedisplay = 'always' | 'limited' | 'unspecified'; interface Alma {} interface AmazonPay {} interface AuBecsDebit { /** * The account number for the bank account. */ account_number: string; /** * Bank-State-Branch number of the bank account. */ bsb_number: string; } interface BacsDebit { /** * Account number of the bank account that the funds will be debited from. */ account_number?: string; /** * Sort code of the bank account. (e.g., `10-20-30`) */ sort_code?: string; } interface Bancontact {} interface BillingDetails { /** * Billing address. */ address?: Stripe.Emptyable; /** * Email address. */ email?: Stripe.Emptyable; /** * Full name. */ name?: Stripe.Emptyable; /** * Billing phone number (including extension). */ phone?: Stripe.Emptyable; } interface Blik {} interface Boleto { /** * The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) */ tax_id: string; } interface Cashapp {} interface CustomerBalance {} interface Eps { /** * The customer's bank. */ bank?: Eps.Bank; } namespace Eps { type Bank = | 'arzte_und_apotheker_bank' | 'austrian_anadi_bank_ag' | 'bank_austria' | 'bankhaus_carl_spangler' | 'bankhaus_schelhammer_und_schattera_ag' | 'bawag_psk_ag' | 'bks_bank_ag' | 'brull_kallmus_bank_ag' | 'btv_vier_lander_bank' | 'capital_bank_grawe_gruppe_ag' | 'deutsche_bank_ag' | 'dolomitenbank' | 'easybank_ag' | 'erste_bank_und_sparkassen' | 'hypo_alpeadriabank_international_ag' | 'hypo_bank_burgenland_aktiengesellschaft' | 'hypo_noe_lb_fur_niederosterreich_u_wien' | 'hypo_oberosterreich_salzburg_steiermark' | 'hypo_tirol_bank_ag' | 'hypo_vorarlberg_bank_ag' | 'marchfelder_bank' | 'oberbank_ag' | 'raiffeisen_bankengruppe_osterreich' | 'schoellerbank_ag' | 'sparda_bank_wien' | 'volksbank_gruppe' | 'volkskreditbank_ag' | 'vr_bank_braunau'; } interface Fpx { /** * Account holder type for FPX transaction */ account_holder_type?: Fpx.AccountHolderType; /** * The customer's bank. */ bank: Fpx.Bank; } namespace Fpx { type AccountHolderType = 'company' | 'individual'; type Bank = | 'affin_bank' | 'agrobank' | 'alliance_bank' | 'ambank' | 'bank_islam' | 'bank_muamalat' | 'bank_of_china' | 'bank_rakyat' | 'bsn' | 'cimb' | 'deutsche_bank' | 'hong_leong_bank' | 'hsbc' | 'kfh' | 'maybank2e' | 'maybank2u' | 'ocbc' | 'pb_enterprise' | 'public_bank' | 'rhb' | 'standard_chartered' | 'uob'; } interface Giropay {} interface Grabpay {} interface Ideal { /** * The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. */ bank?: Ideal.Bank; } namespace Ideal { type Bank = | 'abn_amro' | 'asn_bank' | 'bunq' | 'handelsbanken' | 'ing' | 'knab' | 'moneyou' | 'n26' | 'nn' | 'rabobank' | 'regiobank' | 'revolut' | 'sns_bank' | 'triodos_bank' | 'van_lanschot' | 'yoursafe'; } interface InteracPresent {} interface KakaoPay {} interface Klarna { /** * Customer's date of birth */ dob?: Klarna.Dob; } namespace Klarna { interface Dob { /** * The day of birth, between 1 and 31. */ day: number; /** * The month of birth, between 1 and 12. */ month: number; /** * The four-digit year of birth. */ year: number; } } interface Konbini {} interface KrCard {} interface Link {} interface Mobilepay {} interface Multibanco {} interface NaverPay { /** * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. */ funding?: NaverPay.Funding; } namespace NaverPay { type Funding = 'card' | 'points'; } interface Oxxo {} interface P24 { /** * The customer's bank. */ bank?: P24.Bank; } namespace P24 { type Bank = | 'alior_bank' | 'bank_millennium' | 'bank_nowy_bfg_sa' | 'bank_pekao_sa' | 'banki_spbdzielcze' | 'blik' | 'bnp_paribas' | 'boz' | 'citi_handlowy' | 'credit_agricole' | 'envelobank' | 'etransfer_pocztowy24' | 'getin_bank' | 'ideabank' | 'ing' | 'inteligo' | 'mbank_mtransfer' | 'nest_przelew' | 'noble_pay' | 'pbac_z_ipko' | 'plus_bank' | 'santander_przelew24' | 'tmobile_usbugi_bankowe' | 'toyota_bank' | 'velobank' | 'volkswagen_bank'; } interface PayByBank {} interface Payco {} interface Paynow {} interface Paypal {} interface Pix {} interface Promptpay {} interface RadarOptions { /** * 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. */ session?: string; } interface RevolutPay {} interface SamsungPay {} interface SepaDebit { /** * IBAN of the bank account. */ iban: string; } interface Sofort { /** * Two-letter ISO code representing the country the bank account is located in. */ country: Sofort.Country; } namespace Sofort { type Country = 'AT' | 'BE' | 'DE' | 'ES' | 'IT' | 'NL'; } interface Swish {} interface Twint {} type Type = | 'acss_debit' | 'affirm' | 'afterpay_clearpay' | 'alipay' | 'alma' | 'amazon_pay' | 'au_becs_debit' | 'bacs_debit' | 'bancontact' | 'blik' | 'boleto' | 'cashapp' | 'customer_balance' | 'eps' | 'fpx' | 'giropay' | 'grabpay' | 'ideal' | 'kakao_pay' | 'klarna' | 'konbini' | 'kr_card' | 'link' | 'mobilepay' | 'multibanco' | 'naver_pay' | 'oxxo' | 'p24' | 'pay_by_bank' | 'payco' | 'paynow' | 'paypal' | 'pix' | 'promptpay' | 'revolut_pay' | 'samsung_pay' | 'sepa_debit' | 'sofort' | 'swish' | 'twint' | 'us_bank_account' | 'wechat_pay' | 'zip'; interface UsBankAccount { /** * Account holder type: individual or company. */ account_holder_type?: UsBankAccount.AccountHolderType; /** * Account number of the bank account. */ account_number?: string; /** * Account type: checkings or savings. Defaults to checking if omitted. */ account_type?: UsBankAccount.AccountType; /** * The ID of a Financial Connections Account to use as a payment method. */ financial_connections_account?: string; /** * Routing number of the bank account. */ routing_number?: string; } namespace UsBankAccount { type AccountHolderType = 'company' | 'individual'; type AccountType = 'checking' | 'savings'; } interface WechatPay {} interface Zip {} } interface PaymentMethodOptions { /** * If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options. */ acss_debit?: PaymentMethodOptions.AcssDebit; /** * If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options. */ amazon_pay?: PaymentMethodOptions.AmazonPay; /** * If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options. */ bacs_debit?: PaymentMethodOptions.BacsDebit; /** * Configuration for any card setup attempted on this SetupIntent. */ card?: PaymentMethodOptions.Card; /** * If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options. */ card_present?: PaymentMethodOptions.CardPresent; /** * If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. */ link?: PaymentMethodOptions.Link; /** * If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. */ paypal?: PaymentMethodOptions.Paypal; /** * If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options. */ sepa_debit?: PaymentMethodOptions.SepaDebit; /** * If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options. */ us_bank_account?: PaymentMethodOptions.UsBankAccount; } namespace PaymentMethodOptions { interface AcssDebit { /** * 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). */ currency?: AcssDebit.Currency; /** * Additional fields for Mandate creation */ mandate_options?: AcssDebit.MandateOptions; /** * Bank account verification method. */ verification_method?: AcssDebit.VerificationMethod; } namespace AcssDebit { type Currency = 'cad' | 'usd'; interface MandateOptions { /** * A URL for custom mandate text to render during confirmation step. * The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, * or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. */ custom_mandate_url?: Stripe.Emptyable; /** * List of Stripe products where this mandate can be selected automatically. */ default_for?: Array; /** * Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. */ interval_description?: string; /** * Payment schedule for the mandate. */ payment_schedule?: MandateOptions.PaymentSchedule; /** * Transaction type of the mandate. */ transaction_type?: MandateOptions.TransactionType; } namespace MandateOptions { type DefaultFor = 'invoice' | 'subscription'; type PaymentSchedule = 'combined' | 'interval' | 'sporadic'; type TransactionType = 'business' | 'personal'; } type VerificationMethod = 'automatic' | 'instant' | 'microdeposits'; } interface AmazonPay {} interface BacsDebit { /** * Additional fields for Mandate creation */ mandate_options?: BacsDebit.MandateOptions; } namespace BacsDebit { interface MandateOptions { /** * 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'. */ reference_prefix?: Stripe.Emptyable; } } interface Card { /** * Configuration options for setting up an eMandate for cards issued in India. */ mandate_options?: Card.MandateOptions; /** * When specified, this parameter signals that a card has been collected * as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This * parameter can only be provided during confirmation. */ moto?: boolean; /** * 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. */ network?: Card.Network; /** * 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. */ request_three_d_secure?: Card.RequestThreeDSecure; /** * If 3D Secure authentication was performed with a third-party provider, * the authentication details to use for this setup. */ three_d_secure?: Card.ThreeDSecure; } namespace Card { interface MandateOptions { /** * Amount to be charged for future payments. */ amount: number; /** * 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. */ amount_type: MandateOptions.AmountType; /** * 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). */ currency: string; /** * A description of the mandate or subscription that is meant to be displayed to the customer. */ description?: string; /** * 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. */ end_date?: number; /** * Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. */ interval: MandateOptions.Interval; /** * 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`. */ interval_count?: number; /** * Unique identifier for the mandate or subscription. */ reference: string; /** * Start date of the mandate or subscription. Start date should not be lesser than yesterday. */ start_date: number; /** * Specifies the type of mandates supported. Possible values are `india`. */ supported_types?: Array<'india'>; } namespace MandateOptions { type AmountType = 'fixed' | 'maximum'; type Interval = 'day' | 'month' | 'sporadic' | 'week' | 'year'; } type Network = | 'amex' | 'cartes_bancaires' | 'diners' | 'discover' | 'eftpos_au' | 'girocard' | 'interac' | 'jcb' | 'link' | 'mastercard' | 'unionpay' | 'unknown' | 'visa'; type RequestThreeDSecure = 'any' | 'automatic' | 'challenge'; interface ThreeDSecure { /** * The `transStatus` returned from the card Issuer's ACS in the ARes. */ ares_trans_status?: ThreeDSecure.AresTransStatus; /** * The cryptogram, also known as the "authentication value" (AAV, CAVV or * AEVV). This value is 20 bytes, base64-encoded into a 28-character string. * (Most 3D Secure providers will return the base64-encoded version, which * is what you should specify here.) */ cryptogram?: string; /** * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure * provider and indicates what degree of authentication was performed. */ electronic_commerce_indicator?: ThreeDSecure.ElectronicCommerceIndicator; /** * Network specific 3DS fields. Network specific arguments require an * explicit card brand choice. The parameter `payment_method_options.card.network`` * must be populated accordingly */ network_options?: ThreeDSecure.NetworkOptions; /** * The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the * AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. */ requestor_challenge_indicator?: string; /** * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server * Transaction ID (dsTransID). */ transaction_id?: string; /** * The version of 3D Secure that was performed. */ version?: ThreeDSecure.Version; } namespace ThreeDSecure { type AresTransStatus = 'A' | 'C' | 'I' | 'N' | 'R' | 'U' | 'Y'; type ElectronicCommerceIndicator = '01' | '02' | '05' | '06' | '07'; interface NetworkOptions { /** * Cartes Bancaires-specific 3DS fields. */ cartes_bancaires?: NetworkOptions.CartesBancaires; } namespace NetworkOptions { interface CartesBancaires { /** * The cryptogram calculation algorithm used by the card Issuer's ACS * to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. * messageExtension: CB-AVALGO */ cb_avalgo: CartesBancaires.CbAvalgo; /** * The exemption indicator returned from Cartes Bancaires in the ARes. * message extension: CB-EXEMPTION; string (4 characters) * This is a 3 byte bitmap (low significant byte first and most significant * bit first) that has been Base64 encoded */ cb_exemption?: string; /** * The risk score returned from Cartes Bancaires in the ARes. * message extension: CB-SCORE; numeric value 0-99 */ cb_score?: number; } namespace CartesBancaires { type CbAvalgo = '0' | '1' | '2' | '3' | '4' | 'A'; } } type Version = '1.0.2' | '2.1.0' | '2.2.0'; } } interface CardPresent {} interface Link { /** * [Deprecated] This is a legacy parameter that no longer has any function. * @deprecated */ persistent_token?: string; } interface Paypal { /** * The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. */ billing_agreement_id?: string; } interface SepaDebit { /** * Additional fields for Mandate creation */ mandate_options?: SepaDebit.MandateOptions; } namespace SepaDebit { interface MandateOptions { /** * 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'. */ reference_prefix?: Stripe.Emptyable; } } interface UsBankAccount { /** * Additional fields for Financial Connections Session creation */ financial_connections?: UsBankAccount.FinancialConnections; /** * Additional fields for Mandate creation */ mandate_options?: UsBankAccount.MandateOptions; /** * Additional fields for network related functions */ networks?: UsBankAccount.Networks; /** * Bank account verification method. */ verification_method?: UsBankAccount.VerificationMethod; } namespace UsBankAccount { interface FinancialConnections { /** * Provide filters for the linked accounts that the customer can select for the payment method. */ filters?: FinancialConnections.Filters; /** * 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`. */ permissions?: Array; /** * List of data features that you would like to retrieve upon account creation. */ prefetch?: Array; /** * 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. */ return_url?: string; } namespace FinancialConnections { interface Filters { /** * The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. */ account_subcategories?: Array; } namespace Filters { type AccountSubcategory = 'checking' | 'savings'; } type Permission = | 'balances' | 'ownership' | 'payment_method' | 'transactions'; type Prefetch = 'balances' | 'ownership' | 'transactions'; } interface MandateOptions { /** * The method used to collect offline mandate customer acceptance. */ collection_method?: Stripe.Emptyable<'paper'>; } interface Networks { /** * Triggers validations to run across the selected networks */ requested?: Array; } namespace Networks { type Requested = 'ach' | 'us_domestic_wire'; } type VerificationMethod = 'automatic' | 'instant' | 'microdeposits'; } } interface SingleUse { /** * 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). */ amount: number; /** * 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). */ currency: string; } type Usage = 'off_session' | 'on_session'; } interface SetupIntentRetrieveParams { /** * The client secret of the SetupIntent. We require this string if you use a publishable key to retrieve the SetupIntent. */ client_secret?: string; /** * Specifies which fields in the response should be expanded. */ expand?: Array; } interface SetupIntentUpdateParams { /** * If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. * * 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. */ attach_to_self?: boolean; /** * ID of the Customer this SetupIntent belongs to, if one exists. * * 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. */ customer?: string; /** * An arbitrary string attached to the object. Often useful for displaying to users. */ description?: string; /** * Specifies which fields in the response should be expanded. */ expand?: Array; /** * Indicates the directions of money movement for which this payment method is intended to be used. * * 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. */ flow_directions?: Array; /** * 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`. */ metadata?: Stripe.Emptyable; /** * 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. */ payment_method?: string; /** * The ID of the [payment method configuration](https://stripe.com/docs/api/payment_method_configurations) to use with this SetupIntent. */ payment_method_configuration?: string; /** * 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) * value in the SetupIntent. */ payment_method_data?: SetupIntentUpdateParams.PaymentMethodData; /** * Payment method-specific configuration for this SetupIntent. */ payment_method_options?: SetupIntentUpdateParams.PaymentMethodOptions; /** * 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). */ payment_method_types?: Array; } namespace SetupIntentUpdateParams { type FlowDirection = 'inbound' | 'outbound'; interface PaymentMethodData { /** * If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. */ acss_debit?: PaymentMethodData.AcssDebit; /** * If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. */ affirm?: PaymentMethodData.Affirm; /** * If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. */ afterpay_clearpay?: PaymentMethodData.AfterpayClearpay; /** * If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. */ alipay?: PaymentMethodData.Alipay; /** * 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`. */ allow_redisplay?: PaymentMethodData.AllowRedisplay; /** * If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. */ alma?: PaymentMethodData.Alma; /** * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. */ amazon_pay?: PaymentMethodData.AmazonPay; /** * If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. */ au_becs_debit?: PaymentMethodData.AuBecsDebit; /** * If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. */ bacs_debit?: PaymentMethodData.BacsDebit; /** * If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. */ bancontact?: PaymentMethodData.Bancontact; /** * Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. */ billing_details?: PaymentMethodData.BillingDetails; /** * If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. */ blik?: PaymentMethodData.Blik; /** * If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. */ boleto?: PaymentMethodData.Boleto; /** * If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. */ cashapp?: PaymentMethodData.Cashapp; /** * If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. */ customer_balance?: PaymentMethodData.CustomerBalance; /** * If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. */ eps?: PaymentMethodData.Eps; /** * If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. */ fpx?: PaymentMethodData.Fpx; /** * If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. */ giropay?: PaymentMethodData.Giropay; /** * If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. */ grabpay?: PaymentMethodData.Grabpay; /** * If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. */ ideal?: PaymentMethodData.Ideal; /** * If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. */ interac_present?: PaymentMethodData.InteracPresent; /** * If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. */ kakao_pay?: PaymentMethodData.KakaoPay; /** * If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. */ klarna?: PaymentMethodData.Klarna; /** * If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. */ konbini?: PaymentMethodData.Konbini; /** * If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. */ kr_card?: PaymentMethodData.KrCard; /** * If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. */ link?: PaymentMethodData.Link; /** * 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`. */ metadata?: Stripe.MetadataParam; /** * If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. */ mobilepay?: PaymentMethodData.Mobilepay; /** * If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. */ multibanco?: PaymentMethodData.Multibanco; /** * If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. */ naver_pay?: PaymentMethodData.NaverPay; /** * If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. */ oxxo?: PaymentMethodData.Oxxo; /** * If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. */ p24?: PaymentMethodData.P24; /** * If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. */ pay_by_bank?: PaymentMethodData.PayByBank; /** * If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. */ payco?: PaymentMethodData.Payco; /** * If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. */ paynow?: PaymentMethodData.Paynow; /** * If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. */ paypal?: PaymentMethodData.Paypal; /** * If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. */ pix?: PaymentMethodData.Pix; /** * If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. */ promptpay?: PaymentMethodData.Promptpay; /** * Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. */ radar_options?: PaymentMethodData.RadarOptions; /** * If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. */ revolut_pay?: PaymentMethodData.RevolutPay; /** * If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. */ samsung_pay?: PaymentMethodData.SamsungPay; /** * If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. */ sepa_debit?: PaymentMethodData.SepaDebit; /** * If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. */ sofort?: PaymentMethodData.Sofort; /** * If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. */ swish?: PaymentMethodData.Swish; /** * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. */ twint?: PaymentMethodData.Twint; /** * 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. */ type: PaymentMethodData.Type; /** * If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. */ us_bank_account?: PaymentMethodData.UsBankAccount; /** * If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. */ wechat_pay?: PaymentMethodData.WechatPay; /** * If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. */ zip?: PaymentMethodData.Zip; } namespace PaymentMethodData { interface AcssDebit { /** * Customer's bank account number. */ account_number: string; /** * Institution number of the customer's bank. */ institution_number: string; /** * Transit number of the customer's bank. */ transit_number: string; } interface Affirm {} interface AfterpayClearpay {} interface Alipay {} type AllowRedisplay = 'always' | 'limited' | 'unspecified'; interface Alma {} interface AmazonPay {} interface AuBecsDebit { /** * The account number for the bank account. */ account_number: string; /** * Bank-State-Branch number of the bank account. */ bsb_number: string; } interface BacsDebit { /** * Account number of the bank account that the funds will be debited from. */ account_number?: string; /** * Sort code of the bank account. (e.g., `10-20-30`) */ sort_code?: string; } interface Bancontact {} interface BillingDetails { /** * Billing address. */ address?: Stripe.Emptyable; /** * Email address. */ email?: Stripe.Emptyable; /** * Full name. */ name?: Stripe.Emptyable; /** * Billing phone number (including extension). */ phone?: Stripe.Emptyable; } interface Blik {} interface Boleto { /** * The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) */ tax_id: string; } interface Cashapp {} interface CustomerBalance {} interface Eps { /** * The customer's bank. */ bank?: Eps.Bank; } namespace Eps { type Bank = | 'arzte_und_apotheker_bank' | 'austrian_anadi_bank_ag' | 'bank_austria' | 'bankhaus_carl_spangler' | 'bankhaus_schelhammer_und_schattera_ag' | 'bawag_psk_ag' | 'bks_bank_ag' | 'brull_kallmus_bank_ag' | 'btv_vier_lander_bank' | 'capital_bank_grawe_gruppe_ag' | 'deutsche_bank_ag' | 'dolomitenbank' | 'easybank_ag' | 'erste_bank_und_sparkassen' | 'hypo_alpeadriabank_international_ag' | 'hypo_bank_burgenland_aktiengesellschaft' | 'hypo_noe_lb_fur_niederosterreich_u_wien' | 'hypo_oberosterreich_salzburg_steiermark' | 'hypo_tirol_bank_ag' | 'hypo_vorarlberg_bank_ag' | 'marchfelder_bank' | 'oberbank_ag' | 'raiffeisen_bankengruppe_osterreich' | 'schoellerbank_ag' | 'sparda_bank_wien' | 'volksbank_gruppe' | 'volkskreditbank_ag' | 'vr_bank_braunau'; } interface Fpx { /** * Account holder type for FPX transaction */ account_holder_type?: Fpx.AccountHolderType; /** * The customer's bank. */ bank: Fpx.Bank; } namespace Fpx { type AccountHolderType = 'company' | 'individual'; type Bank = | 'affin_bank' | 'agrobank' | 'alliance_bank' | 'ambank' | 'bank_islam' | 'bank_muamalat' | 'bank_of_china' | 'bank_rakyat' | 'bsn' | 'cimb' | 'deutsche_bank' | 'hong_leong_bank' | 'hsbc' | 'kfh' | 'maybank2e' | 'maybank2u' | 'ocbc' | 'pb_enterprise' | 'public_bank' | 'rhb' | 'standard_chartered' | 'uob'; } interface Giropay {} interface Grabpay {} interface Ideal { /** * The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. */ bank?: Ideal.Bank; } namespace Ideal { type Bank = | 'abn_amro' | 'asn_bank' | 'bunq' | 'handelsbanken' | 'ing' | 'knab' | 'moneyou' | 'n26' | 'nn' | 'rabobank' | 'regiobank' | 'revolut' | 'sns_bank' | 'triodos_bank' | 'van_lanschot' | 'yoursafe'; } interface InteracPresent {} interface KakaoPay {} interface Klarna { /** * Customer's date of birth */ dob?: Klarna.Dob; } namespace Klarna { interface Dob { /** * The day of birth, between 1 and 31. */ day: number; /** * The month of birth, between 1 and 12. */ month: number; /** * The four-digit year of birth. */ year: number; } } interface Konbini {} interface KrCard {} interface Link {} interface Mobilepay {} interface Multibanco {} interface NaverPay { /** * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. */ funding?: NaverPay.Funding; } namespace NaverPay { type Funding = 'card' | 'points'; } interface Oxxo {} interface P24 { /** * The customer's bank. */ bank?: P24.Bank; } namespace P24 { type Bank = | 'alior_bank' | 'bank_millennium' | 'bank_nowy_bfg_sa' | 'bank_pekao_sa' | 'banki_spbdzielcze' | 'blik' | 'bnp_paribas' | 'boz' | 'citi_handlowy' | 'credit_agricole' | 'envelobank' | 'etransfer_pocztowy24' | 'getin_bank' | 'ideabank' | 'ing' | 'inteligo' | 'mbank_mtransfer' | 'nest_przelew' | 'noble_pay' | 'pbac_z_ipko' | 'plus_bank' | 'santander_przelew24' | 'tmobile_usbugi_bankowe' | 'toyota_bank' | 'velobank' | 'volkswagen_bank'; } interface PayByBank {} interface Payco {} interface Paynow {} interface Paypal {} interface Pix {} interface Promptpay {} interface RadarOptions { /** * 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. */ session?: string; } interface RevolutPay {} interface SamsungPay {} interface SepaDebit { /** * IBAN of the bank account. */ iban: string; } interface Sofort { /** * Two-letter ISO code representing the country the bank account is located in. */ country: Sofort.Country; } namespace Sofort { type Country = 'AT' | 'BE' | 'DE' | 'ES' | 'IT' | 'NL'; } interface Swish {} interface Twint {} type Type = | 'acss_debit' | 'affirm' | 'afterpay_clearpay' | 'alipay' | 'alma' | 'amazon_pay' | 'au_becs_debit' | 'bacs_debit' | 'bancontact' | 'blik' | 'boleto' | 'cashapp' | 'customer_balance' | 'eps' | 'fpx' | 'giropay' | 'grabpay' | 'ideal' | 'kakao_pay' | 'klarna' | 'konbini' | 'kr_card' | 'link' | 'mobilepay' | 'multibanco' | 'naver_pay' | 'oxxo' | 'p24' | 'pay_by_bank' | 'payco' | 'paynow' | 'paypal' | 'pix' | 'promptpay' | 'revolut_pay' | 'samsung_pay' | 'sepa_debit' | 'sofort' | 'swish' | 'twint' | 'us_bank_account' | 'wechat_pay' | 'zip'; interface UsBankAccount { /** * Account holder type: individual or company. */ account_holder_type?: UsBankAccount.AccountHolderType; /** * Account number of the bank account. */ account_number?: string; /** * Account type: checkings or savings. Defaults to checking if omitted. */ account_type?: UsBankAccount.AccountType; /** * The ID of a Financial Connections Account to use as a payment method. */ financial_connections_account?: string; /** * Routing number of the bank account. */ routing_number?: string; } namespace UsBankAccount { type AccountHolderType = 'company' | 'individual'; type AccountType = 'checking' | 'savings'; } interface WechatPay {} interface Zip {} } interface PaymentMethodOptions { /** * If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options. */ acss_debit?: PaymentMethodOptions.AcssDebit; /** * If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options. */ amazon_pay?: PaymentMethodOptions.AmazonPay; /** * If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options. */ bacs_debit?: PaymentMethodOptions.BacsDebit; /** * Configuration for any card setup attempted on this SetupIntent. */ card?: PaymentMethodOptions.Card; /** * If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options. */ card_present?: PaymentMethodOptions.CardPresent; /** * If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. */ link?: PaymentMethodOptions.Link; /** * If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. */ paypal?: PaymentMethodOptions.Paypal; /** * If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options. */ sepa_debit?: PaymentMethodOptions.SepaDebit; /** * If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options. */ us_bank_account?: PaymentMethodOptions.UsBankAccount; } namespace PaymentMethodOptions { interface AcssDebit { /** * 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). */ currency?: AcssDebit.Currency; /** * Additional fields for Mandate creation */ mandate_options?: AcssDebit.MandateOptions; /** * Bank account verification method. */ verification_method?: AcssDebit.VerificationMethod; } namespace AcssDebit { type Currency = 'cad' | 'usd'; interface MandateOptions { /** * A URL for custom mandate text to render during confirmation step. * The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, * or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. */ custom_mandate_url?: Stripe.Emptyable; /** * List of Stripe products where this mandate can be selected automatically. */ default_for?: Array; /** * Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. */ interval_description?: string; /** * Payment schedule for the mandate. */ payment_schedule?: MandateOptions.PaymentSchedule; /** * Transaction type of the mandate. */ transaction_type?: MandateOptions.TransactionType; } namespace MandateOptions { type DefaultFor = 'invoice' | 'subscription'; type PaymentSchedule = 'combined' | 'interval' | 'sporadic'; type TransactionType = 'business' | 'personal'; } type VerificationMethod = 'automatic' | 'instant' | 'microdeposits'; } interface AmazonPay {} interface BacsDebit { /** * Additional fields for Mandate creation */ mandate_options?: BacsDebit.MandateOptions; } namespace BacsDebit { interface MandateOptions { /** * 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'. */ reference_prefix?: Stripe.Emptyable; } } interface Card { /** * Configuration options for setting up an eMandate for cards issued in India. */ mandate_options?: Card.MandateOptions; /** * When specified, this parameter signals that a card has been collected * as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This * parameter can only be provided during confirmation. */ moto?: boolean; /** * 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. */ network?: Card.Network; /** * 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. */ request_three_d_secure?: Card.RequestThreeDSecure; /** * If 3D Secure authentication was performed with a third-party provider, * the authentication details to use for this setup. */ three_d_secure?: Card.ThreeDSecure; } namespace Card { interface MandateOptions { /** * Amount to be charged for future payments. */ amount: number; /** * 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. */ amount_type: MandateOptions.AmountType; /** * 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). */ currency: string; /** * A description of the mandate or subscription that is meant to be displayed to the customer. */ description?: string; /** * 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. */ end_date?: number; /** * Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. */ interval: MandateOptions.Interval; /** * 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`. */ interval_count?: number; /** * Unique identifier for the mandate or subscription. */ reference: string; /** * Start date of the mandate or subscription. Start date should not be lesser than yesterday. */ start_date: number; /** * Specifies the type of mandates supported. Possible values are `india`. */ supported_types?: Array<'india'>; } namespace MandateOptions { type AmountType = 'fixed' | 'maximum'; type Interval = 'day' | 'month' | 'sporadic' | 'week' | 'year'; } type Network = | 'amex' | 'cartes_bancaires' | 'diners' | 'discover' | 'eftpos_au' | 'girocard' | 'interac' | 'jcb' | 'link' | 'mastercard' | 'unionpay' | 'unknown' | 'visa'; type RequestThreeDSecure = 'any' | 'automatic' | 'challenge'; interface ThreeDSecure { /** * The `transStatus` returned from the card Issuer's ACS in the ARes. */ ares_trans_status?: ThreeDSecure.AresTransStatus; /** * The cryptogram, also known as the "authentication value" (AAV, CAVV or * AEVV). This value is 20 bytes, base64-encoded into a 28-character string. * (Most 3D Secure providers will return the base64-encoded version, which * is what you should specify here.) */ cryptogram?: string; /** * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure * provider and indicates what degree of authentication was performed. */ electronic_commerce_indicator?: ThreeDSecure.ElectronicCommerceIndicator; /** * Network specific 3DS fields. Network specific arguments require an * explicit card brand choice. The parameter `payment_method_options.card.network`` * must be populated accordingly */ network_options?: ThreeDSecure.NetworkOptions; /** * The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the * AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. */ requestor_challenge_indicator?: string; /** * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server * Transaction ID (dsTransID). */ transaction_id?: string; /** * The version of 3D Secure that was performed. */ version?: ThreeDSecure.Version; } namespace ThreeDSecure { type AresTransStatus = 'A' | 'C' | 'I' | 'N' | 'R' | 'U' | 'Y'; type ElectronicCommerceIndicator = '01' | '02' | '05' | '06' | '07'; interface NetworkOptions { /** * Cartes Bancaires-specific 3DS fields. */ cartes_bancaires?: NetworkOptions.CartesBancaires; } namespace NetworkOptions { interface CartesBancaires { /** * The cryptogram calculation algorithm used by the card Issuer's ACS * to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. * messageExtension: CB-AVALGO */ cb_avalgo: CartesBancaires.CbAvalgo; /** * The exemption indicator returned from Cartes Bancaires in the ARes. * message extension: CB-EXEMPTION; string (4 characters) * This is a 3 byte bitmap (low significant byte first and most significant * bit first) that has been Base64 encoded */ cb_exemption?: string; /** * The risk score returned from Cartes Bancaires in the ARes. * message extension: CB-SCORE; numeric value 0-99 */ cb_score?: number; } namespace CartesBancaires { type CbAvalgo = '0' | '1' | '2' | '3' | '4' | 'A'; } } type Version = '1.0.2' | '2.1.0' | '2.2.0'; } } interface CardPresent {} interface Link { /** * [Deprecated] This is a legacy parameter that no longer has any function. * @deprecated */ persistent_token?: string; } interface Paypal { /** * The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. */ billing_agreement_id?: string; } interface SepaDebit { /** * Additional fields for Mandate creation */ mandate_options?: SepaDebit.MandateOptions; } namespace SepaDebit { interface MandateOptions { /** * 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'. */ reference_prefix?: Stripe.Emptyable; } } interface UsBankAccount { /** * Additional fields for Financial Connections Session creation */ financial_connections?: UsBankAccount.FinancialConnections; /** * Additional fields for Mandate creation */ mandate_options?: UsBankAccount.MandateOptions; /** * Additional fields for network related functions */ networks?: UsBankAccount.Networks; /** * Bank account verification method. */ verification_method?: UsBankAccount.VerificationMethod; } namespace UsBankAccount { interface FinancialConnections { /** * Provide filters for the linked accounts that the customer can select for the payment method. */ filters?: FinancialConnections.Filters; /** * 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`. */ permissions?: Array; /** * List of data features that you would like to retrieve upon account creation. */ prefetch?: Array; /** * 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. */ return_url?: string; } namespace FinancialConnections { interface Filters { /** * The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. */ account_subcategories?: Array; } namespace Filters { type AccountSubcategory = 'checking' | 'savings'; } type Permission = | 'balances' | 'ownership' | 'payment_method' | 'transactions'; type Prefetch = 'balances' | 'ownership' | 'transactions'; } interface MandateOptions { /** * The method used to collect offline mandate customer acceptance. */ collection_method?: Stripe.Emptyable<'paper'>; } interface Networks { /** * Triggers validations to run across the selected networks */ requested?: Array; } namespace Networks { type Requested = 'ach' | 'us_domestic_wire'; } type VerificationMethod = 'automatic' | 'instant' | 'microdeposits'; } } } interface SetupIntentListParams extends PaginationParams { /** * If present, the SetupIntent's payment method will be attached to the in-context Stripe Account. * * 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. */ attach_to_self?: boolean; /** * 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. */ created?: Stripe.RangeQueryParam | number; /** * Only return SetupIntents for the customer specified by this customer ID. */ customer?: string; /** * Specifies which fields in the response should be expanded. */ expand?: Array; /** * Only return SetupIntents that associate with the specified payment method. */ payment_method?: string; } interface SetupIntentCancelParams { /** * Reason for canceling this SetupIntent. Possible values are: `abandoned`, `requested_by_customer`, or `duplicate` */ cancellation_reason?: SetupIntentCancelParams.CancellationReason; /** * Specifies which fields in the response should be expanded. */ expand?: Array; } namespace SetupIntentCancelParams { type CancellationReason = | 'abandoned' | 'duplicate' | 'requested_by_customer'; } interface SetupIntentConfirmParams { /** * ID of the ConfirmationToken used to confirm this SetupIntent. * * 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. */ confirmation_token?: string; /** * Specifies which fields in the response should be expanded. */ expand?: Array; mandate_data?: Stripe.Emptyable; /** * ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent. */ payment_method?: string; /** * 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) * value in the SetupIntent. */ payment_method_data?: SetupIntentConfirmParams.PaymentMethodData; /** * Payment method-specific configuration for this SetupIntent. */ payment_method_options?: SetupIntentConfirmParams.PaymentMethodOptions; /** * The URL to redirect your customer back to after they authenticate on the payment method's app or site. * If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. * This parameter is only used for cards and other redirect-based payment methods. */ return_url?: string; /** * Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions. */ use_stripe_sdk?: boolean; } namespace SetupIntentConfirmParams { interface MandateData { /** * This hash contains details about the customer acceptance of the Mandate. */ customer_acceptance?: MandateData.CustomerAcceptance; } namespace MandateData { interface CustomerAcceptance { /** * The time at which the customer accepted the Mandate. */ accepted_at?: number; /** * If this is a Mandate accepted offline, this hash contains details about the offline acceptance. */ offline?: CustomerAcceptance.Offline; /** * If this is a Mandate accepted online, this hash contains details about the online acceptance. */ online?: CustomerAcceptance.Online; /** * The type of customer acceptance information included with the Mandate. One of `online` or `offline`. */ type: CustomerAcceptance.Type; } namespace CustomerAcceptance { interface Offline {} interface Online { /** * The IP address from which the Mandate was accepted by the customer. */ ip_address?: string; /** * The user agent of the browser from which the Mandate was accepted by the customer. */ user_agent?: string; } type Type = 'offline' | 'online'; } } interface PaymentMethodData { /** * If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. */ acss_debit?: PaymentMethodData.AcssDebit; /** * If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. */ affirm?: PaymentMethodData.Affirm; /** * If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. */ afterpay_clearpay?: PaymentMethodData.AfterpayClearpay; /** * If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. */ alipay?: PaymentMethodData.Alipay; /** * 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`. */ allow_redisplay?: PaymentMethodData.AllowRedisplay; /** * If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. */ alma?: PaymentMethodData.Alma; /** * If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. */ amazon_pay?: PaymentMethodData.AmazonPay; /** * If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. */ au_becs_debit?: PaymentMethodData.AuBecsDebit; /** * If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. */ bacs_debit?: PaymentMethodData.BacsDebit; /** * If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. */ bancontact?: PaymentMethodData.Bancontact; /** * Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. */ billing_details?: PaymentMethodData.BillingDetails; /** * If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. */ blik?: PaymentMethodData.Blik; /** * If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. */ boleto?: PaymentMethodData.Boleto; /** * If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. */ cashapp?: PaymentMethodData.Cashapp; /** * If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. */ customer_balance?: PaymentMethodData.CustomerBalance; /** * If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. */ eps?: PaymentMethodData.Eps; /** * If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. */ fpx?: PaymentMethodData.Fpx; /** * If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. */ giropay?: PaymentMethodData.Giropay; /** * If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. */ grabpay?: PaymentMethodData.Grabpay; /** * If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. */ ideal?: PaymentMethodData.Ideal; /** * If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. */ interac_present?: PaymentMethodData.InteracPresent; /** * If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. */ kakao_pay?: PaymentMethodData.KakaoPay; /** * If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. */ klarna?: PaymentMethodData.Klarna; /** * If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. */ konbini?: PaymentMethodData.Konbini; /** * If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. */ kr_card?: PaymentMethodData.KrCard; /** * If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. */ link?: PaymentMethodData.Link; /** * 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`. */ metadata?: Stripe.MetadataParam; /** * If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. */ mobilepay?: PaymentMethodData.Mobilepay; /** * If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. */ multibanco?: PaymentMethodData.Multibanco; /** * If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. */ naver_pay?: PaymentMethodData.NaverPay; /** * If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. */ oxxo?: PaymentMethodData.Oxxo; /** * If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. */ p24?: PaymentMethodData.P24; /** * If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. */ pay_by_bank?: PaymentMethodData.PayByBank; /** * If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. */ payco?: PaymentMethodData.Payco; /** * If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. */ paynow?: PaymentMethodData.Paynow; /** * If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. */ paypal?: PaymentMethodData.Paypal; /** * If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. */ pix?: PaymentMethodData.Pix; /** * If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. */ promptpay?: PaymentMethodData.Promptpay; /** * Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. */ radar_options?: PaymentMethodData.RadarOptions; /** * If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. */ revolut_pay?: PaymentMethodData.RevolutPay; /** * If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. */ samsung_pay?: PaymentMethodData.SamsungPay; /** * If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. */ sepa_debit?: PaymentMethodData.SepaDebit; /** * If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. */ sofort?: PaymentMethodData.Sofort; /** * If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. */ swish?: PaymentMethodData.Swish; /** * If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. */ twint?: PaymentMethodData.Twint; /** * 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. */ type: PaymentMethodData.Type; /** * If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. */ us_bank_account?: PaymentMethodData.UsBankAccount; /** * If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. */ wechat_pay?: PaymentMethodData.WechatPay; /** * If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. */ zip?: PaymentMethodData.Zip; } namespace PaymentMethodData { interface AcssDebit { /** * Customer's bank account number. */ account_number: string; /** * Institution number of the customer's bank. */ institution_number: string; /** * Transit number of the customer's bank. */ transit_number: string; } interface Affirm {} interface AfterpayClearpay {} interface Alipay {} type AllowRedisplay = 'always' | 'limited' | 'unspecified'; interface Alma {} interface AmazonPay {} interface AuBecsDebit { /** * The account number for the bank account. */ account_number: string; /** * Bank-State-Branch number of the bank account. */ bsb_number: string; } interface BacsDebit { /** * Account number of the bank account that the funds will be debited from. */ account_number?: string; /** * Sort code of the bank account. (e.g., `10-20-30`) */ sort_code?: string; } interface Bancontact {} interface BillingDetails { /** * Billing address. */ address?: Stripe.Emptyable; /** * Email address. */ email?: Stripe.Emptyable; /** * Full name. */ name?: Stripe.Emptyable; /** * Billing phone number (including extension). */ phone?: Stripe.Emptyable; } interface Blik {} interface Boleto { /** * The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) */ tax_id: string; } interface Cashapp {} interface CustomerBalance {} interface Eps { /** * The customer's bank. */ bank?: Eps.Bank; } namespace Eps { type Bank = | 'arzte_und_apotheker_bank' | 'austrian_anadi_bank_ag' | 'bank_austria' | 'bankhaus_carl_spangler' | 'bankhaus_schelhammer_und_schattera_ag' | 'bawag_psk_ag' | 'bks_bank_ag' | 'brull_kallmus_bank_ag' | 'btv_vier_lander_bank' | 'capital_bank_grawe_gruppe_ag' | 'deutsche_bank_ag' | 'dolomitenbank' | 'easybank_ag' | 'erste_bank_und_sparkassen' | 'hypo_alpeadriabank_international_ag' | 'hypo_bank_burgenland_aktiengesellschaft' | 'hypo_noe_lb_fur_niederosterreich_u_wien' | 'hypo_oberosterreich_salzburg_steiermark' | 'hypo_tirol_bank_ag' | 'hypo_vorarlberg_bank_ag' | 'marchfelder_bank' | 'oberbank_ag' | 'raiffeisen_bankengruppe_osterreich' | 'schoellerbank_ag' | 'sparda_bank_wien' | 'volksbank_gruppe' | 'volkskreditbank_ag' | 'vr_bank_braunau'; } interface Fpx { /** * Account holder type for FPX transaction */ account_holder_type?: Fpx.AccountHolderType; /** * The customer's bank. */ bank: Fpx.Bank; } namespace Fpx { type AccountHolderType = 'company' | 'individual'; type Bank = | 'affin_bank' | 'agrobank' | 'alliance_bank' | 'ambank' | 'bank_islam' | 'bank_muamalat' | 'bank_of_china' | 'bank_rakyat' | 'bsn' | 'cimb' | 'deutsche_bank' | 'hong_leong_bank' | 'hsbc' | 'kfh' | 'maybank2e' | 'maybank2u' | 'ocbc' | 'pb_enterprise' | 'public_bank' | 'rhb' | 'standard_chartered' | 'uob'; } interface Giropay {} interface Grabpay {} interface Ideal { /** * The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. */ bank?: Ideal.Bank; } namespace Ideal { type Bank = | 'abn_amro' | 'asn_bank' | 'bunq' | 'handelsbanken' | 'ing' | 'knab' | 'moneyou' | 'n26' | 'nn' | 'rabobank' | 'regiobank' | 'revolut' | 'sns_bank' | 'triodos_bank' | 'van_lanschot' | 'yoursafe'; } interface InteracPresent {} interface KakaoPay {} interface Klarna { /** * Customer's date of birth */ dob?: Klarna.Dob; } namespace Klarna { interface Dob { /** * The day of birth, between 1 and 31. */ day: number; /** * The month of birth, between 1 and 12. */ month: number; /** * The four-digit year of birth. */ year: number; } } interface Konbini {} interface KrCard {} interface Link {} interface Mobilepay {} interface Multibanco {} interface NaverPay { /** * Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. */ funding?: NaverPay.Funding; } namespace NaverPay { type Funding = 'card' | 'points'; } interface Oxxo {} interface P24 { /** * The customer's bank. */ bank?: P24.Bank; } namespace P24 { type Bank = | 'alior_bank' | 'bank_millennium' | 'bank_nowy_bfg_sa' | 'bank_pekao_sa' | 'banki_spbdzielcze' | 'blik' | 'bnp_paribas' | 'boz' | 'citi_handlowy' | 'credit_agricole' | 'envelobank' | 'etransfer_pocztowy24' | 'getin_bank' | 'ideabank' | 'ing' | 'inteligo' | 'mbank_mtransfer' | 'nest_przelew' | 'noble_pay' | 'pbac_z_ipko' | 'plus_bank' | 'santander_przelew24' | 'tmobile_usbugi_bankowe' | 'toyota_bank' | 'velobank' | 'volkswagen_bank'; } interface PayByBank {} interface Payco {} interface Paynow {} interface Paypal {} interface Pix {} interface Promptpay {} interface RadarOptions { /** * 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. */ session?: string; } interface RevolutPay {} interface SamsungPay {} interface SepaDebit { /** * IBAN of the bank account. */ iban: string; } interface Sofort { /** * Two-letter ISO code representing the country the bank account is located in. */ country: Sofort.Country; } namespace Sofort { type Country = 'AT' | 'BE' | 'DE' | 'ES' | 'IT' | 'NL'; } interface Swish {} interface Twint {} type Type = | 'acss_debit' | 'affirm' | 'afterpay_clearpay' | 'alipay' | 'alma' | 'amazon_pay' | 'au_becs_debit' | 'bacs_debit' | 'bancontact' | 'blik' | 'boleto' | 'cashapp' | 'customer_balance' | 'eps' | 'fpx' | 'giropay' | 'grabpay' | 'ideal' | 'kakao_pay' | 'klarna' | 'konbini' | 'kr_card' | 'link' | 'mobilepay' | 'multibanco' | 'naver_pay' | 'oxxo' | 'p24' | 'pay_by_bank' | 'payco' | 'paynow' | 'paypal' | 'pix' | 'promptpay' | 'revolut_pay' | 'samsung_pay' | 'sepa_debit' | 'sofort' | 'swish' | 'twint' | 'us_bank_account' | 'wechat_pay' | 'zip'; interface UsBankAccount { /** * Account holder type: individual or company. */ account_holder_type?: UsBankAccount.AccountHolderType; /** * Account number of the bank account. */ account_number?: string; /** * Account type: checkings or savings. Defaults to checking if omitted. */ account_type?: UsBankAccount.AccountType; /** * The ID of a Financial Connections Account to use as a payment method. */ financial_connections_account?: string; /** * Routing number of the bank account. */ routing_number?: string; } namespace UsBankAccount { type AccountHolderType = 'company' | 'individual'; type AccountType = 'checking' | 'savings'; } interface WechatPay {} interface Zip {} } interface PaymentMethodOptions { /** * If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options. */ acss_debit?: PaymentMethodOptions.AcssDebit; /** * If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options. */ amazon_pay?: PaymentMethodOptions.AmazonPay; /** * If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options. */ bacs_debit?: PaymentMethodOptions.BacsDebit; /** * Configuration for any card setup attempted on this SetupIntent. */ card?: PaymentMethodOptions.Card; /** * If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options. */ card_present?: PaymentMethodOptions.CardPresent; /** * If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options. */ link?: PaymentMethodOptions.Link; /** * If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options. */ paypal?: PaymentMethodOptions.Paypal; /** * If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options. */ sepa_debit?: PaymentMethodOptions.SepaDebit; /** * If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options. */ us_bank_account?: PaymentMethodOptions.UsBankAccount; } namespace PaymentMethodOptions { interface AcssDebit { /** * 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). */ currency?: AcssDebit.Currency; /** * Additional fields for Mandate creation */ mandate_options?: AcssDebit.MandateOptions; /** * Bank account verification method. */ verification_method?: AcssDebit.VerificationMethod; } namespace AcssDebit { type Currency = 'cad' | 'usd'; interface MandateOptions { /** * A URL for custom mandate text to render during confirmation step. * The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent, * or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent. */ custom_mandate_url?: Stripe.Emptyable; /** * List of Stripe products where this mandate can be selected automatically. */ default_for?: Array; /** * Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'. */ interval_description?: string; /** * Payment schedule for the mandate. */ payment_schedule?: MandateOptions.PaymentSchedule; /** * Transaction type of the mandate. */ transaction_type?: MandateOptions.TransactionType; } namespace MandateOptions { type DefaultFor = 'invoice' | 'subscription'; type PaymentSchedule = 'combined' | 'interval' | 'sporadic'; type TransactionType = 'business' | 'personal'; } type VerificationMethod = 'automatic' | 'instant' | 'microdeposits'; } interface AmazonPay {} interface BacsDebit { /** * Additional fields for Mandate creation */ mandate_options?: BacsDebit.MandateOptions; } namespace BacsDebit { interface MandateOptions { /** * 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'. */ reference_prefix?: Stripe.Emptyable; } } interface Card { /** * Configuration options for setting up an eMandate for cards issued in India. */ mandate_options?: Card.MandateOptions; /** * When specified, this parameter signals that a card has been collected * as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This * parameter can only be provided during confirmation. */ moto?: boolean; /** * 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. */ network?: Card.Network; /** * 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. */ request_three_d_secure?: Card.RequestThreeDSecure; /** * If 3D Secure authentication was performed with a third-party provider, * the authentication details to use for this setup. */ three_d_secure?: Card.ThreeDSecure; } namespace Card { interface MandateOptions { /** * Amount to be charged for future payments. */ amount: number; /** * 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. */ amount_type: MandateOptions.AmountType; /** * 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). */ currency: string; /** * A description of the mandate or subscription that is meant to be displayed to the customer. */ description?: string; /** * 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. */ end_date?: number; /** * Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`. */ interval: MandateOptions.Interval; /** * 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`. */ interval_count?: number; /** * Unique identifier for the mandate or subscription. */ reference: string; /** * Start date of the mandate or subscription. Start date should not be lesser than yesterday. */ start_date: number; /** * Specifies the type of mandates supported. Possible values are `india`. */ supported_types?: Array<'india'>; } namespace MandateOptions { type AmountType = 'fixed' | 'maximum'; type Interval = 'day' | 'month' | 'sporadic' | 'week' | 'year'; } type Network = | 'amex' | 'cartes_bancaires' | 'diners' | 'discover' | 'eftpos_au' | 'girocard' | 'interac' | 'jcb' | 'link' | 'mastercard' | 'unionpay' | 'unknown' | 'visa'; type RequestThreeDSecure = 'any' | 'automatic' | 'challenge'; interface ThreeDSecure { /** * The `transStatus` returned from the card Issuer's ACS in the ARes. */ ares_trans_status?: ThreeDSecure.AresTransStatus; /** * The cryptogram, also known as the "authentication value" (AAV, CAVV or * AEVV). This value is 20 bytes, base64-encoded into a 28-character string. * (Most 3D Secure providers will return the base64-encoded version, which * is what you should specify here.) */ cryptogram?: string; /** * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure * provider and indicates what degree of authentication was performed. */ electronic_commerce_indicator?: ThreeDSecure.ElectronicCommerceIndicator; /** * Network specific 3DS fields. Network specific arguments require an * explicit card brand choice. The parameter `payment_method_options.card.network`` * must be populated accordingly */ network_options?: ThreeDSecure.NetworkOptions; /** * The challenge indicator (`threeDSRequestorChallengeInd`) which was requested in the * AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99. */ requestor_challenge_indicator?: string; /** * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server * Transaction ID (dsTransID). */ transaction_id?: string; /** * The version of 3D Secure that was performed. */ version?: ThreeDSecure.Version; } namespace ThreeDSecure { type AresTransStatus = 'A' | 'C' | 'I' | 'N' | 'R' | 'U' | 'Y'; type ElectronicCommerceIndicator = '01' | '02' | '05' | '06' | '07'; interface NetworkOptions { /** * Cartes Bancaires-specific 3DS fields. */ cartes_bancaires?: NetworkOptions.CartesBancaires; } namespace NetworkOptions { interface CartesBancaires { /** * The cryptogram calculation algorithm used by the card Issuer's ACS * to calculate the Authentication cryptogram. Also known as `cavvAlgorithm`. * messageExtension: CB-AVALGO */ cb_avalgo: CartesBancaires.CbAvalgo; /** * The exemption indicator returned from Cartes Bancaires in the ARes. * message extension: CB-EXEMPTION; string (4 characters) * This is a 3 byte bitmap (low significant byte first and most significant * bit first) that has been Base64 encoded */ cb_exemption?: string; /** * The risk score returned from Cartes Bancaires in the ARes. * message extension: CB-SCORE; numeric value 0-99 */ cb_score?: number; } namespace CartesBancaires { type CbAvalgo = '0' | '1' | '2' | '3' | '4' | 'A'; } } type Version = '1.0.2' | '2.1.0' | '2.2.0'; } } interface CardPresent {} interface Link { /** * [Deprecated] This is a legacy parameter that no longer has any function. * @deprecated */ persistent_token?: string; } interface Paypal { /** * The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer. */ billing_agreement_id?: string; } interface SepaDebit { /** * Additional fields for Mandate creation */ mandate_options?: SepaDebit.MandateOptions; } namespace SepaDebit { interface MandateOptions { /** * 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'. */ reference_prefix?: Stripe.Emptyable; } } interface UsBankAccount { /** * Additional fields for Financial Connections Session creation */ financial_connections?: UsBankAccount.FinancialConnections; /** * Additional fields for Mandate creation */ mandate_options?: UsBankAccount.MandateOptions; /** * Additional fields for network related functions */ networks?: UsBankAccount.Networks; /** * Bank account verification method. */ verification_method?: UsBankAccount.VerificationMethod; } namespace UsBankAccount { interface FinancialConnections { /** * Provide filters for the linked accounts that the customer can select for the payment method. */ filters?: FinancialConnections.Filters; /** * 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`. */ permissions?: Array; /** * List of data features that you would like to retrieve upon account creation. */ prefetch?: Array; /** * 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. */ return_url?: string; } namespace FinancialConnections { interface Filters { /** * The account subcategories to use to filter for selectable accounts. Valid subcategories are `checking` and `savings`. */ account_subcategories?: Array; } namespace Filters { type AccountSubcategory = 'checking' | 'savings'; } type Permission = | 'balances' | 'ownership' | 'payment_method' | 'transactions'; type Prefetch = 'balances' | 'ownership' | 'transactions'; } interface MandateOptions { /** * The method used to collect offline mandate customer acceptance. */ collection_method?: Stripe.Emptyable<'paper'>; } interface Networks { /** * Triggers validations to run across the selected networks */ requested?: Array; } namespace Networks { type Requested = 'ach' | 'us_domestic_wire'; } type VerificationMethod = 'automatic' | 'instant' | 'microdeposits'; } } } interface SetupIntentVerifyMicrodepositsParams { /** * Two positive integers, in *cents*, equal to the values of the microdeposits sent to the bank account. */ amounts?: Array; /** * A six-character code starting with SM present in the microdeposit sent to the bank account. */ descriptor_code?: string; /** * Specifies which fields in the response should be expanded. */ expand?: Array; } class SetupIntentsResource { /** * Creates a SetupIntent object. * * After you create the SetupIntent, attach a payment method and [confirm](https://stripe.com/docs/api/setup_intents/confirm) * it to collect any required permissions to charge the payment method later. */ create( params?: SetupIntentCreateParams, options?: RequestOptions ): Promise>; create( options?: RequestOptions ): Promise>; /** * Retrieves the details of a SetupIntent that has previously been created. * * Client-side retrieval using a publishable key is allowed when the client_secret is provided in the query string. * * When retrieved with a publishable key, only a subset of properties will be returned. Please refer to the [SetupIntent](https://stripe.com/docs/api#setup_intent_object) object reference for more details. */ retrieve( id: string, params?: SetupIntentRetrieveParams, options?: RequestOptions ): Promise>; retrieve( id: string, options?: RequestOptions ): Promise>; /** * Updates a SetupIntent object. */ update( id: string, params?: SetupIntentUpdateParams, options?: RequestOptions ): Promise>; /** * Returns a list of SetupIntents. */ list( params?: SetupIntentListParams, options?: RequestOptions ): ApiListPromise; list(options?: RequestOptions): ApiListPromise; /** * You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. * * 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://stripe.com/docs/api/checkout/sessions/expire) instead. */ cancel( id: string, params?: SetupIntentCancelParams, options?: RequestOptions ): Promise>; cancel( id: string, options?: RequestOptions ): Promise>; /** * Confirm that your customer intends to set up the current or * provided payment method. For example, you would confirm a SetupIntent * when a customer hits the “Save” button on a payment method management * page on your website. * * If the selected payment method does not require any additional * steps from the customer, the SetupIntent will transition to the * succeeded status. * * Otherwise, it will transition to the requires_action status and * suggest additional actions via next_action. If setup fails, * the SetupIntent will transition to the * requires_payment_method status or the canceled status if the * confirmation limit is reached. */ confirm( id: string, params?: SetupIntentConfirmParams, options?: RequestOptions ): Promise>; confirm( id: string, options?: RequestOptions ): Promise>; /** * Verifies microdeposits on a SetupIntent object. */ verifyMicrodeposits( id: string, params?: SetupIntentVerifyMicrodepositsParams, options?: RequestOptions ): Promise>; verifyMicrodeposits( id: string, options?: RequestOptions ): Promise>; } } }