Packages

Complete Stripe SDK for Elixir with parity to the official Ruby SDK. V1+V2 coverage (193 services, 320 resource structs, 525 documented params). Per-event modules, Finch HTTP/2, RustyJSON, automatic retries, OAuth, webhooks, telemetry, per-client config, streaming pagination.

Current section

Files

Jump to
tiger_stripe lib stripe params setup_intent_create_params.ex
Raw

lib/stripe/params/setup_intent_create_params.ex

# File generated from our OpenAPI spec
defmodule Stripe.Params.SetupIntentCreateParams do
@moduledoc "Parameters for setup intent create."
@typedoc """
* `attach_to_self` - 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.
* `automatic_payment_methods` - When you enable this parameter, this SetupIntent accepts payment methods that you enable in the Dashboard and that are compatible with its other parameters.
* `confirm` - 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.
* `confirmation_token` - 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. Max length: 5000.
* `customer` - 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. Max length: 5000.
* `customer_account` - ID of the Account this SetupIntent belongs to, if one exists.
If present, the SetupIntent's payment method will be attached to the Account on successful setup. Payment methods attached to other Accounts cannot be used with this SetupIntent. Max length: 5000.
* `description` - An arbitrary string attached to the object. Often useful for displaying to users. Max length: 1000.
* `excluded_payment_method_types` - The list of payment method types to exclude from use with this SetupIntent.
* `expand` - Specifies which fields in the response should be expanded.
* `flow_directions` - 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.
* `mandate_data` - This hash contains details about the mandate to create. This parameter can only be used with [`confirm=true`](https://docs.stripe.com/api/setup_intents/create#create_setup_intent-confirm).
* `metadata` - Set of [key-value pairs](https://docs.stripe.com/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`.
* `on_behalf_of` - The Stripe account ID created for this SetupIntent.
* `payment_method` - ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent. Max length: 5000.
* `payment_method_configuration` - The ID of the [payment method configuration](https://docs.stripe.com/api/payment_method_configurations) to use with this SetupIntent. Max length: 100.
* `payment_method_data` - When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://docs.stripe.com/api/setup_intents/object#setup_intent_object-payment_method)
value in the SetupIntent.
* `payment_method_options` - Payment method-specific configuration for this SetupIntent.
* `payment_method_types` - The list of payment method types (for example, card) that this SetupIntent can use. If you don't provide this, Stripe will dynamically show relevant payment methods from your [payment method settings](https://dashboard.stripe.com/settings/payment_methods). A list of valid payment method types can be found [here](https://docs.stripe.com/api/payment_methods/object#payment_method_object-type).
* `return_url` - 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://docs.stripe.com/api/setup_intents/create#create_setup_intent-confirm).
* `single_use` - If you populate this hash, this SetupIntent generates a `single_use` mandate after successful completion.
Single-use mandates are only valid for the following payment methods: `acss_debit`, `alipay`, `au_becs_debit`, `bacs_debit`, `bancontact`, `boleto`, `ideal`, `link`, `sepa_debit`, and `us_bank_account`.
* `usage` - Indicates how the payment method is intended to be used in the future. If not provided, this value defaults to `off_session`. Possible values: `off_session`, `on_session`.
* `use_stripe_sdk` - Set to `true` when confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.
"""
@type t :: %__MODULE__{
attach_to_self: boolean() | nil,
automatic_payment_methods: __MODULE__.AutomaticPaymentMethods.t() | nil,
confirm: boolean() | nil,
confirmation_token: String.t() | nil,
customer: String.t() | nil,
customer_account: String.t() | nil,
description: String.t() | nil,
excluded_payment_method_types: [String.t()] | nil,
expand: [String.t()] | nil,
flow_directions: [String.t()] | nil,
mandate_data: map() | nil,
metadata: %{String.t() => String.t()} | nil,
on_behalf_of: String.t() | nil,
payment_method: String.t() | nil,
payment_method_configuration: String.t() | nil,
payment_method_data: __MODULE__.PaymentMethodData.t() | nil,
payment_method_options: __MODULE__.PaymentMethodOptions.t() | nil,
payment_method_types: [String.t()] | nil,
return_url: String.t() | nil,
single_use: __MODULE__.SingleUse.t() | nil,
usage: String.t() | nil,
use_stripe_sdk: boolean() | nil
}
defstruct [
:attach_to_self,
:automatic_payment_methods,
:confirm,
:confirmation_token,
:customer,
:customer_account,
:description,
:excluded_payment_method_types,
:expand,
:flow_directions,
:mandate_data,
:metadata,
:on_behalf_of,
:payment_method,
:payment_method_configuration,
:payment_method_data,
:payment_method_options,
:payment_method_types,
:return_url,
:single_use,
:usage,
:use_stripe_sdk
]
defmodule AutomaticPaymentMethods do
@moduledoc "Nested parameters."
@typedoc """
* `allow_redirects` - 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://docs.stripe.com/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. Possible values: `always`, `never`.
* `enabled` - Whether this feature is enabled.
"""
@type t :: %__MODULE__{
allow_redirects: String.t() | nil,
enabled: boolean() | nil
}
defstruct [:allow_redirects, :enabled]
end
defmodule PaymentMethodData do
@moduledoc "Nested parameters."
@typedoc """
* `acss_debit` - If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
* `affirm` - If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
* `afterpay_clearpay` - If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
* `alipay` - If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
* `allow_redisplay` - 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`. Possible values: `always`, `limited`, `unspecified`.
* `alma` - If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
* `amazon_pay` - If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method.
* `au_becs_debit` - If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
* `bacs_debit` - If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
* `bancontact` - If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
* `billie` - If this is a `billie` PaymentMethod, this hash contains details about the Billie payment method.
* `billing_details` - Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
* `blik` - If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
* `boleto` - If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
* `cashapp` - If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
* `crypto` - If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method.
* `customer_balance` - If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
* `eps` - If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
* `fpx` - If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
* `giropay` - If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
* `grabpay` - If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
* `ideal` - If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
* `interac_present` - If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
* `kakao_pay` - If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method.
* `klarna` - If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
* `konbini` - If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
* `kr_card` - If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method.
* `link` - If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.
* `mb_way` - If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method.
* `metadata` - Set of [key-value pairs](https://docs.stripe.com/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`.
* `mobilepay` - If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method.
* `multibanco` - If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method.
* `naver_pay` - If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method.
* `nz_bank_account` - If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method.
* `oxxo` - If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
* `p24` - If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
* `pay_by_bank` - If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method.
* `payco` - If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method.
* `paynow` - If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.
* `paypal` - If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.
* `payto` - If this is a `payto` PaymentMethod, this hash contains details about the PayTo payment method.
* `pix` - If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.
* `promptpay` - If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.
* `radar_options` - Options to configure Radar. See [Radar Session](https://docs.stripe.com/radar/radar-session) for more information.
* `revolut_pay` - If this is a `revolut_pay` PaymentMethod, this hash contains details about the Revolut Pay payment method.
* `samsung_pay` - If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method.
* `satispay` - If this is a `satispay` PaymentMethod, this hash contains details about the Satispay payment method.
* `sepa_debit` - If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
* `sofort` - If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.
* `swish` - If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method.
* `twint` - If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
* `type` - 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. Possible values: `acss_debit`, `affirm`, `afterpay_clearpay`, `alipay`, `alma`, `amazon_pay`, `au_becs_debit`, `bacs_debit`, `bancontact`, `billie`, `blik`, `boleto`, `cashapp`, `crypto`, `customer_balance`, `eps`, `fpx`, `giropay`, `grabpay`, `ideal`, `kakao_pay`, `klarna`, `konbini`, `kr_card`, `link`, `mb_way`, `mobilepay`, `multibanco`, `naver_pay`, `nz_bank_account`, `oxxo`, `p24`, `pay_by_bank`, `payco`, `paynow`, `paypal`, `payto`, `pix`, `promptpay`, `revolut_pay`, `samsung_pay`, `satispay`, `sepa_debit`, `sofort`, `swish`, `twint`, `us_bank_account`, `wechat_pay`, `zip`.
* `us_bank_account` - If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.
* `wechat_pay` - If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.
* `zip` - If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.
"""
@type t :: %__MODULE__{
acss_debit: __MODULE__.AcssDebit.t() | nil,
affirm: map() | nil,
afterpay_clearpay: map() | nil,
alipay: map() | nil,
allow_redisplay: String.t() | nil,
alma: map() | nil,
amazon_pay: map() | nil,
au_becs_debit: __MODULE__.AuBecsDebit.t() | nil,
bacs_debit: __MODULE__.BacsDebit.t() | nil,
bancontact: map() | nil,
billie: map() | nil,
billing_details: __MODULE__.BillingDetails.t() | nil,
blik: map() | nil,
boleto: __MODULE__.Boleto.t() | nil,
cashapp: map() | nil,
crypto: map() | nil,
customer_balance: map() | nil,
eps: __MODULE__.Eps.t() | nil,
fpx: __MODULE__.Fpx.t() | nil,
giropay: map() | nil,
grabpay: map() | nil,
ideal: __MODULE__.Ideal.t() | nil,
interac_present: map() | nil,
kakao_pay: map() | nil,
klarna: __MODULE__.Klarna.t() | nil,
konbini: map() | nil,
kr_card: map() | nil,
link: map() | nil,
mb_way: map() | nil,
metadata: %{String.t() => String.t()} | nil,
mobilepay: map() | nil,
multibanco: map() | nil,
naver_pay: __MODULE__.NaverPay.t() | nil,
nz_bank_account: __MODULE__.NzBankAccount.t() | nil,
oxxo: map() | nil,
p24: __MODULE__.P24.t() | nil,
pay_by_bank: map() | nil,
payco: map() | nil,
paynow: map() | nil,
paypal: map() | nil,
payto: __MODULE__.Payto.t() | nil,
pix: map() | nil,
promptpay: map() | nil,
radar_options: __MODULE__.RadarOptions.t() | nil,
revolut_pay: map() | nil,
samsung_pay: map() | nil,
satispay: map() | nil,
sepa_debit: __MODULE__.SepaDebit.t() | nil,
sofort: __MODULE__.Sofort.t() | nil,
swish: map() | nil,
twint: map() | nil,
type: String.t() | nil,
us_bank_account: __MODULE__.UsBankAccount.t() | nil,
wechat_pay: map() | nil,
zip: map() | nil
}
defstruct [
:acss_debit,
:affirm,
:afterpay_clearpay,
:alipay,
:allow_redisplay,
:alma,
:amazon_pay,
:au_becs_debit,
:bacs_debit,
:bancontact,
:billie,
:billing_details,
:blik,
:boleto,
:cashapp,
:crypto,
:customer_balance,
:eps,
:fpx,
:giropay,
:grabpay,
:ideal,
:interac_present,
:kakao_pay,
:klarna,
:konbini,
:kr_card,
:link,
:mb_way,
:metadata,
:mobilepay,
:multibanco,
:naver_pay,
:nz_bank_account,
:oxxo,
:p24,
:pay_by_bank,
:payco,
:paynow,
:paypal,
:payto,
:pix,
:promptpay,
:radar_options,
:revolut_pay,
:samsung_pay,
:satispay,
:sepa_debit,
:sofort,
:swish,
:twint,
:type,
:us_bank_account,
:wechat_pay,
:zip
]
end
defmodule PaymentMethodOptions do
@moduledoc "Nested parameters."
@typedoc """
* `acss_debit` - If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options.
* `amazon_pay` - If this is a `amazon_pay` SetupIntent, this sub-hash contains details about the AmazonPay payment method options.
* `bacs_debit` - If this is a `bacs_debit` SetupIntent, this sub-hash contains details about the Bacs Debit payment method options.
* `card` - Configuration for any card setup attempted on this SetupIntent.
* `card_present` - If this is a `card_present` PaymentMethod, this sub-hash contains details about the card-present payment method options.
* `klarna` - If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method options.
* `link` - If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options.
* `paypal` - If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options.
* `payto` - If this is a `payto` SetupIntent, this sub-hash contains details about the PayTo payment method options.
* `sepa_debit` - If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options.
* `us_bank_account` - If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options.
"""
@type t :: %__MODULE__{
acss_debit: __MODULE__.AcssDebit.t() | nil,
amazon_pay: map() | nil,
bacs_debit: __MODULE__.BacsDebit.t() | nil,
card: __MODULE__.Card.t() | nil,
card_present: map() | nil,
klarna: __MODULE__.Klarna.t() | nil,
link: __MODULE__.Link.t() | nil,
paypal: __MODULE__.Paypal.t() | nil,
payto: __MODULE__.Payto.t() | nil,
sepa_debit: __MODULE__.SepaDebit.t() | nil,
us_bank_account: __MODULE__.UsBankAccount.t() | nil
}
defstruct [
:acss_debit,
:amazon_pay,
:bacs_debit,
:card,
:card_present,
:klarna,
:link,
:paypal,
:payto,
:sepa_debit,
:us_bank_account
]
end
defmodule SingleUse do
@moduledoc "Nested parameters."
@typedoc """
* `amount` - Amount the customer is granting permission to collect later. A positive integer representing how much to charge in the [smallest currency unit](https://docs.stripe.com/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://docs.stripe.com/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).
* `currency` - 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). Format: ISO 4217 currency code.
"""
@type t :: %__MODULE__{
amount: integer() | nil,
currency: String.t() | nil
}
defstruct [:amount, :currency]
end
end