UNPKG

@stripe/stripe-js

Version:

Stripe.js loading utility

1,535 lines (1,376 loc) 53.6 kB
import { StripeIdealBankElement, StripeIbanElement, StripeP24BankElement, StripeEpsBankElement, StripeFpxBankElement, StripeCardCvcElement, StripeCardNumberElement, StripeCardElement, StripeAuBankAccountElement, } from './elements'; import {PaymentMethodCreateParams, PaymentIntentConfirmParams} from '../api'; import {Omit} from '../utils'; export type CreatePaymentMethodData = | CreatePaymentMethodAcssDebitData | CreatePaymentMethodAffirmData | CreatePaymentMethodAfterpayClearpayData | CreatePaymentMethodAlipayData | CreatePaymentMethodAuBecsDebitData | CreatePaymentMethodBacsDebitData | CreatePaymentMethodBancontactData | CreatePaymentMethodBillieData | CreatePaymentMethodBlikData | CreatePaymentMethodBoletoData | CreatePaymentMethodCardData | CreatePaymentMethodCashappData | CreatePaymentMethodCustomerBalanceData | CreatePaymentMethodEpsData | CreatePaymentMethodGiropayData | CreatePaymentMethodGrabPayData | CreatePaymentMethodIdealData | CreatePaymentMethodKlarnaData | CreatePaymentMethodKonbiniData | CreatePaymentMethodP24Data | CreatePaymentMethodPayPalData | CreatePaymentMethodPayNowData | CreatePaymentMethodPixData | CreatePaymentMethodPromptPayData | CreatePaymentMethodFpxData | CreatePaymentMethodUsBankAccountData | CreatePaymentMethodSepaDebitData | CreatePaymentMethodSofortData | CreatePaymentMethodWechatPayData; export { CreatePaymentMethodFromElement, CreatePaymentMethodFromElements, } from '../api'; export interface CreatePaymentMethodAlipayData extends PaymentMethodCreateParams { type: 'alipay'; } export interface CreatePaymentMethodWechatPayData extends PaymentMethodCreateParams { /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. */ type: 'wechat_pay'; } export interface CreatePaymentMethodAffirmData extends PaymentMethodCreateParams { type: 'affirm'; /** * Can be omitted as there are no Affirm-specific fields. */ affirm?: {}; // eslint-disable-line @typescript-eslint/ban-types } export interface CreatePaymentMethodAfterpayClearpayData extends PaymentMethodCreateParams { type: 'afterpay_clearpay'; /** * Can be omitted as there are no AfterpayClearpay-specific fields. */ afterpay_clearpay?: {}; // eslint-disable-line @typescript-eslint/ban-types } export interface CreatePaymentMethodBancontactData extends PaymentMethodCreateParams { type: 'bancontact'; /** * The customer's billing details. * `name` is required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { name: string; }; } export interface CreatePaymentMethodBillieData extends PaymentMethodCreateParams { /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. */ type: 'billie'; /** * Details about the Billie pament method. Currently there are no supported child attributes for this field, but sending an empty object is mandatory. */ billie: {}; // eslint-disable-line @typescript-eslint/ban-types } export interface CreatePaymentMethodBlikData extends PaymentMethodCreateParams { type: 'blik'; /** * Details about the BLIK pament method. Currently there are no supported child attributes for this field. */ blik?: {}; // eslint-disable-line @typescript-eslint/ban-types } export interface CreatePaymentMethodBoletoData extends PaymentMethodCreateParams { type: 'boleto'; /** * The customer's billing details. * `name`, `email`, and full `address` is required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { email: string; name: string; address: PaymentMethodCreateParams.BillingDetails.Address & { line1: string; city: string; postal_code: string; state: string; country: string; }; }; boleto: { tax_id: string; }; } export interface CreatePaymentMethodCardData extends PaymentMethodCreateParams { type: 'card'; card: StripeCardElement | StripeCardNumberElement | {token: string}; } export interface CreatePaymentMethodCashappData extends PaymentMethodCreateParams { type: 'cashapp'; } export interface CreatePaymentMethodCustomerBalanceData extends PaymentMethodCreateParams { /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. */ customer_balance: Record<string, never>; } export interface CreatePaymentMethodEpsData extends PaymentMethodCreateParams { type: 'eps'; /** * The customer's billing details. * `name` is required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { name: string; }; eps: | StripeEpsBankElement | { /** * The customer's bank */ bank?: string; }; } export interface CreatePaymentMethodFpxData extends PaymentMethodCreateParams { type: 'fpx'; fpx: | StripeFpxBankElement | { /** * The customer's bank. */ bank: string; }; } export interface CreatePaymentMethodGiropayData extends PaymentMethodCreateParams { type: 'giropay'; /** * The customer's billing details. * `name` is required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { name: string; }; } export interface CreatePaymentMethodGrabPayData extends PaymentMethodCreateParams { type: 'grabpay'; /** * Can be omitted as there are no GrabPay-specific fields. */ grabpay?: {}; // eslint-disable-line @typescript-eslint/ban-types } export interface CreatePaymentMethodIdealData extends PaymentMethodCreateParams { type: 'ideal'; ideal: | StripeIdealBankElement | { /** * The customer's bank. */ bank?: string; }; } export interface CreatePaymentMethodKlarnaData extends PaymentMethodCreateParams { /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. */ type: 'klarna'; /** * The customer's billing details. * `address.country` is required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { address: PaymentMethodCreateParams.BillingDetails.Address & { country: string; }; }; } export interface CreatePaymentMethodKonbiniData extends PaymentMethodCreateParams { type: 'konbini'; /** * The customer's billing details. * `email` and `name` are required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { email: string; name: string; }; } export interface CreatePaymentMethodMobilepayData extends PaymentMethodCreateParams { type: 'mobilepay'; } export interface CreatePaymentMethodMultibancoData extends PaymentMethodCreateParams { type: 'multibanco'; /** * The customer's billing details. * `email` is required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { email: string; }; } export interface CreatePaymentMethodOxxoData extends PaymentMethodCreateParams { type: 'oxxo'; /** * The customer's billing details. * `email` and `name` are required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { email: string; name: string; }; } export interface CreatePaymentMethodP24Data extends PaymentMethodCreateParams { type: 'p24'; /** * The customer's billing details. * `email` is required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { email: string; }; p24?: | StripeP24BankElement | { /** * The customer's bank. */ bank?: string; }; } export interface CreatePaymentMethodPayNowData extends PaymentMethodCreateParams { type: 'paynow'; } export interface CreatePaymentMethodPayPalData extends PaymentMethodCreateParams { type: 'paypal'; } export interface CreatePaymentMethodPixData extends PaymentMethodCreateParams { type: 'pix'; } export interface CreatePaymentMethodPromptPayData extends PaymentMethodCreateParams { type: 'promptpay'; } export interface CreatePaymentMethodSepaDebitData extends PaymentMethodCreateParams { type: 'sepa_debit'; sepa_debit: | StripeIbanElement | { /** * An IBAN account number. */ iban: string; }; /** * The customer's billing details. * `name` and `email` are required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { name: string; email: string; }; } export interface CreatePaymentMethodSofortData extends PaymentMethodCreateParams { type: 'sofort'; sofort: { /** * The country code where customer's bank is located. */ country: string; }; /** * The customer's billing details. * Required when `setup_future_usage` is set to `off_session`. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details?: PaymentMethodCreateParams.BillingDetails; } export interface CreatePaymentMethodTwintData extends PaymentMethodCreateParams { type: 'twint'; } export interface CreatePaymentMethodAuBecsDebitData extends PaymentMethodCreateParams { /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. */ type: 'au_becs_debit'; /** * Requires beta access: * Contact [Stripe support](https://support.stripe.com/) for more information. */ au_becs_debit: | StripeAuBankAccountElement | { /** * A BSB number. */ bsb_number: string; /** * An account number. */ account_number: string; }; /** * The customer's billing details. * `name` and `email` are required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { name: string; email: string; }; } export interface CreatePaymentMethodBacsDebitData extends PaymentMethodCreateParams { type: 'bacs_debit'; bacs_debit: { /** * A sort code. */ sort_code: string; /** * An account number. */ account_number: string; }; /** * The customer's billing details. * `name`, `email`, and `address` are required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails & { name: string; email: string; address: PaymentMethodCreateParams.BillingDetails.Address & { line1: string; city: string; country: string; postal_code: string; }; }; } export interface CreatePaymentMethodAcssDebitData extends PaymentMethodCreateParams { type: 'acss_debit'; /** * Can be omitted as Stripe will help to collect bank account details and verification. * Refer to our [integration guide](https://stripe.com/docs/payments/acss-debit/accept-a-payment) for more details. */ acss_debit?: { /** * 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; }; /** * The customer's billing details. * `name`, `email`, and `address` are required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails; } export interface CreatePaymentMethodUsBankAccountData extends PaymentMethodCreateParams { type: 'us_bank_account'; /** * Can be omitted as Stripe will help to collect bank account details and verification. * Refer to our [integration guide](https://stripe.com/docs/payments/acss-debit/accept-a-payment) for more details. */ us_bank_account: { /** * Customer’s bank account number. */ account_number: string; /** * The routing transit number for the bank account. */ routing_number: string; /** * The type of entity that holds the account. This can be either `individual` or `company`. */ account_holder_type: string; /** * Account type: checkings or savings. Defaults to checking if omitted. */ account_type?: string; }; /** * The customer's billing details. * `name`, `email`, and `address` are required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails; } export interface CollectBankAccountParams { /** * The payment method type for the bank account details (e.g. `us_bank_account`) */ payment_method_type: string; /** * Payment method specific data to be sent with the request (billing details) */ payment_method_data: CollectBankAccountPaymentMethodData; } export interface CollectBankAccountPaymentMethodData { /** * The customer's billing details. * `name`, `email`, and `address` are required. * * @docs https://stripe.com/docs/api/payment_methods/create#create_payment_method-billing_details */ billing_details: PaymentMethodCreateParams.BillingDetails; } /** * Data to be sent with a `stripe.confirmBancontactPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmBancontactPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodBancontactData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * Data to be sent with a `stripe.ConfirmBlikPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmBlikPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodBlikData, 'type'>; /** * An object containing payment-method-specific configuration to confirm the [PaymentIntent](https://stripe.com/docs/api/payment_intents) with. */ payment_method_options: { /** * A configuration for this BLIK payment. */ blik: { /** * Your customer's 6-digit BLIK code. */ code: string; }; }; } /** * Data to be sent with a `stripe.confirmBoletoPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmBoletoPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodBoletoData, 'type'>; } /** * An options object to control the behavior of `stripe.confirmBoletoPayment`. */ export interface ConfirmBoletoPaymentOptions { /** * Set this to `false` if you want to handle next actions yourself. Please refer to our [Stripe Boleto integration guide](https://stripe.com/docs/payments/boleto) for more info. Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmAlipayPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmAlipayPaymentData extends PaymentIntentConfirmParams { /** * The `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods). * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent` or a new `PaymentMethod` will be created. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodAlipayData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmAlipayPayment`. */ export interface ConfirmAlipayPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/alipay/accept-a-payment#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * An options object to control the behavior of `stripe.confirmBancontactPayment`. */ export interface ConfirmBancontactPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/bancontact#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmBilliePayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmBilliePaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodBillieData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmBilliePayment`. */ export interface ConfirmBilliePaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://docs.stripe.com/payments/billie/accept-a-payment#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * An options object to control the behavior of `stripe.confirmBlikPayment`. */ export interface ConfirmBlikPaymentOptions { /** * Set this to false if you want to manually determine if the confirmation has succeeded or failed. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmCardPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmCardPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodCardData, 'type'>; /** * An object containing payment-method-specific configuration to confirm the [PaymentIntent](https://stripe.com/docs/api/payment_intents) with. */ payment_method_options?: { /** * Configuration for this card payment. */ card: { /** * Use the provided `CardCvcElement` when confirming the PaymentIntent with an existing PaymentMethod. */ cvc?: StripeCardCvcElement; /** * Selected network to process this PaymentIntent on. Depends on the available networks of the card attached to the PaymentIntent. */ network?: string; }; }; } /** * An options object to control the behavior of `stripe.confirmCardPayment`. */ export interface ConfirmCardPaymentOptions { /** * Set this to `false` if you want to [handle next actions yourself](https://stripe.com/docs/payments/payment-intents/verifying-status#next-actions), or if you want to defer next action handling until later (e.g. for use in the [PaymentRequest API](https://stripe.com/docs/stripe-js/elements/payment-request-button#complete-payment-intents)). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmCashappPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmCashappPaymentData extends PaymentIntentConfirmParams { /** * The `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods). * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent` or a new `PaymentMethod` will be created. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodCashappData, 'type'>; /** * The url your customer will be directed to after they complete authentication. */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmCashappPayment`. */ export interface ConfirmCashappPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization QR code or redirect](https://stripe.com/docs/payments/cash-app-pay/accept-a-payment?platform=web&ui=API#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmCustomerBalancePayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmCustomerBalancePaymentData extends PaymentIntentConfirmParams { /** * An object specifying the `customer_balance` type. */ payment_method: CreatePaymentMethodCustomerBalanceData; payment_method_options?: { customer_balance?: { funding_type?: 'bank_transfer'; bank_transfer?: { type: | 'eu_bank_transfer' | 'gb_bank_transfer' | 'id_bank_transfer' | 'jp_bank_transfer' | 'mx_bank_transfer' | 'us_bank_transfer'; eu_bank_transfer?: { country: 'DE' | 'ES' | 'FR' | 'IE' | 'NL'; }; id_bank_transfer?: { bank: 'bni' | 'bca'; }; requested_address_types?: Array< | 'aba' | 'swift' | 'sort_code' | 'zengin' | 'iban' | 'spei' | 'id_bban' | 'sepa' >; }; }; }; } /** * An options object to control the behavior of `stripe.confirmCustomerBalancePayment`. */ export interface ConfirmCustomerBalancePaymentOptions { /** * This must be set to `false`. * The Customer Balance does not handle the next actions for you automatically (e.g. displaying bank transfer details). * To make future upgrades easier, this option is required to always be sent. * Please refer to our [Stripe Customer Balance integration guide](https://stripe.com/docs/payments/bank-transfers) for more info. */ handleActions: false; } /** * Data to be sent with a `stripe.confirmEpsPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmEpsPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodEpsData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmEpsPayment`. */ export interface ConfirmEpsPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/eps#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmSepaDebitPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmSepaDebitPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodSepaDebitData, 'type'>; /** * To save the SEPA Direct Debit account for reuse, set this parameter to `off_session`. * SEPA Direct Debit only accepts an `off_session` value for this parameter. */ setup_future_usage?: 'off_session'; } /** * Data to be sent with a `stripe.confirmFpxPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmFpxPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodFpxData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmFpxPayment`. */ export interface ConfirmFpxPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/fpx#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmGiropayPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmGiropayPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodGiropayData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmGiropayPayment`. */ export interface ConfirmGiropayPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/giropay#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmGrabPayPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmGrabPayPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodGrabPayData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmGrabPayPayment`. */ export interface ConfirmGrabPayPaymentOptions { /** * Set this to `false` if you want to handle next actions yourself. Please refer to our [Stripe GrabPay integration guide](https://stripe.com/docs/payments/grabpay/accept-a-payment) * for more info. Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmIdealPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmIdealPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodIdealData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmIdealPayment`. */ export interface ConfirmIdealPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/ideal#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmKlarnaPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmKlarnaPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodKlarnaData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmKlarnaPayment`. */ export interface ConfirmKlarnaPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/klarna#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmKonbiniPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmKonbiniPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodKonbiniData, 'type'>; /** * An object containing payment-method-specific configuration to confirm the [PaymentIntent](https://stripe.com/docs/api/payment_intents) with. */ payment_method_options?: { /** * Configuration for this Konbini payment. */ konbini: { /** * An optional 10 to 11 digit numeric-only string determining the confirmation code at applicable convenience stores. May not be all 0 and could be rejected in case of insufficient uniqueness. We recommend to use the customer’s phone number. */ confirmation_number?: string; }; }; } /** * An options object to control the behavior of `stripe.confirmKonbiniPayment`. */ export interface ConfirmKonbiniPaymentOptions { /** * Set this to `false` if you want to handle next actions yourself. Please refer to our [integration guide](https://stripe.com/docs/payments/konbini/accept-a-payment) for more info. Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmMobilepayPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmMobilepayPaymentData extends PaymentIntentConfirmParams { /** * The `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods). * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent` or a new `PaymentMethod` will be created. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodMobilepayData, 'type'>; /** * The url your customer will be directed to after they complete authentication. */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmMobilepayPayment`. */ export interface ConfirmMobilepayPaymentOptions { /** * Set this to `false` if you want to [manually handle the redirect](https://docs.stripe.com/payments/mobilepay/accept-a-payment?web-or-mobile=web&payments-ui-type=direct-api#web-confirm-payment-intent). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmMultibancoPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmMultibancoPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodMultibancoData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } export interface ConfirmMultibancoPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/sofort/accept-a-payment?platform=web#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmOxxoPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmOxxoPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodOxxoData, 'type'>; } /** * An options object to control the behavior of `stripe.confirmOxxoPayment`. */ export interface ConfirmOxxoPaymentOptions { /** * Set this to `false` if you want to handle next actions yourself. Please refer to our [Stripe OXXO integration guide](https://stripe.com/docs/payments/oxxo) for more info. Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmP24Payment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmP24PaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodP24Data, 'type'>; payment_method_options?: { /** * Configuration for this Przelewy24 payment. */ p24: { /** * Specify that payer has agreed to the Przelewy24 Terms of Service */ tos_shown_and_accepted?: boolean; }; }; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } /** * Data to be sent with a `stripe.confirmPayNowPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmPayNowPaymentData extends PaymentIntentConfirmParams { /** * The `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods). * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent` or a new `PaymentMethod` will be created. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodPayNowData, 'type'>; } /** * An options object to control the behavior of `stripe.confirmPayNowPayment`. */ export interface ConfirmPayNowPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/p24#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmPayPalPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmPayPalPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodPayPalData, 'type'>; /** * The required url your customer will be directed to after they complete authentication. */ return_url: string; } /** * An options object to control the behavior of `stripe.confirmP24Payment`. */ export interface ConfirmP24PaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/p24#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmPixPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmPixPaymentData extends PaymentIntentConfirmParams { /** * The `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods). * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent` or a new `PaymentMethod` will be created. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodPixData, 'type'>; } /** * An options object to control the behavior of `stripe.confirmPayNowPayment`. */ export interface ConfirmPixPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/p24#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmPayNowPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmPromptPayPaymentData extends PaymentIntentConfirmParams { /** * The `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods). * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent` or a new `PaymentMethod` will be created. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodPromptPayData, 'type'>; } /** * An options object to control the behavior of `stripe.confirmPayNowPayment`. */ export interface ConfirmPromptPayPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/p24#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmSofortPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmSofortPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodSofortData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; /** * To set up a SEPA Direct Debit payment method using the bank details from this SOFORT payment, set this parameter to `off_session`. * When using this parameter, a `customer` will need to be set on the [PaymentIntent](https://stripe.com/docs/api/payment_intents). * The newly created SEPA Direct Debit [PaymentMethod](https://stripe.com/docs/api/payment_methods) will be attached to this customer. */ setup_future_usage?: 'off_session'; } /** * An options object to control the behavior of `stripe.confirmSofortPayment`. */ export interface ConfirmSofortPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/sofort/accept-a-payment?platform=web#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmTwintPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmTwintPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodTwintData, 'type'>; /** * The url your customer will be directed to after they complete authentication. * * @recommended */ return_url?: string; } export interface ConfirmTwintPaymentOptions { /** * Set this to `false` if you want to [manually handle the authorization redirect](https://stripe.com/docs/payments/sofort/accept-a-payment?platform=web#handle-redirect). * Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmWechatPayPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmWechatPayPaymentData extends PaymentIntentConfirmParams { /** * The `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods). * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent` or a new `PaymentMethod` will be created. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodWechatPayData, 'type'>; /** * An object containing payment-method-specific configuration to confirm the [PaymentIntent](https://stripe.com/docs/api/payment_intents) with. */ payment_method_options?: { /** * Configuration for this wechat payment. */ wechat_pay: { client?: 'web'; }; }; } /** * An options object to control the behavior of `stripe.confirmWechatPayPayment`. */ export interface ConfirmWechatPayPaymentOptions { /** * This must be set to false, and you are responsible for handling the next_action after confirming the PaymentIntent. */ handleActions: boolean; } /** * Data to be sent with a `stripe.confirmAuBecsDebitPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmAuBecsDebitPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodAuBecsDebitData, 'type'>; /** * To save the BECS Direct Debit account for reuse, set this parameter to `off_session`. * BECS Direct Debit only accepts an `off_session` value for this parameter. */ setup_future_usage?: 'off_session'; } /** * Data to be sent with a `stripe.confirmAffirmPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmAffirmPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: string | Omit<CreatePaymentMethodAffirmData, 'type'>; /** * The url your customer will be directed to after they complete authentication. */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmAffirmPayment`. */ export interface ConfirmAffirmPaymentOptions { /** * Set this to `false` if you want to handle next actions yourself. Please refer to our [Stripe Affirm integration guide](https://stripe.com/docs/payments/affirm/accept-a-payment) * for more info. Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmAfterpayClearpayPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmAfterpayClearpayPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://stripe.com/docs/api/payment_methods), or an object containing data to create a `PaymentMethod` with. * This field is optional if a `PaymentMethod` has already been attached to this `PaymentIntent`. * * @recommended */ payment_method?: | string | Omit<CreatePaymentMethodAfterpayClearpayData, 'type'>; /** * The url your customer will be directed to after they complete authentication. */ return_url?: string; } /** * An options object to control the behavior of `stripe.confirmAfterpayClearpayPayment`. */ export interface ConfirmAfterpayClearpayPaymentOptions { /** * Set this to `false` if you want to handle next actions yourself. Please refer to our [Stripe Afterpay / Clearpay integration guide](https://stripe.com/docs/payments/afterpay-clearpay/accept-a-payment#handle-redirect) * for more info. Default is `true`. */ handleActions?: boolean; } /** * Data to be sent with a `stripe.confirmAcssDebitPayment` request. * Refer to the [Payment Intents API](https://stripe.com/docs/api/payment_intents/confirm) for a full list of parameters. */ export interface ConfirmAcssDebitPaymentData extends PaymentIntentConfirmParams { /** * Either the `id` of an existing [PaymentMethod](https://