class

Stripe::SetupIntent

Inherits OpenApi::Json < OpenApi::Validatable < JSON::Serializable::Unmapped < JSON::Serializable < Reference < Object

A SetupIntent guides you through the process of setting up and saving a customer's payment credentials for future payments. For example, you can use a SetupIntent to set up and save your customer's card without immediately collecting a payment. Later, you can use PaymentIntents to drive the payment flow. Create a SetupIntent when you're ready to collect your customer's payment credentials. Don't maintain long-lived, unconfirmed SetupIntents because they might not be valid. The SetupIntent transitions through multiple statuses as it guides you through the setup process. Successful SetupIntents result in payment credentials that are optimized for future payments. For example, cardholders in certain regions might need to be run through Strong Customer Authentication during payment method collection to streamline later off-session payments. If you use the SetupIntent with a Customer, it automatically attaches the resulting payment method to that Customer after successful setup. We recommend using SetupIntents or setup_future_usage on PaymentIntents to save payment methods to prevent saving invalid or unoptimized payment methods. By using SetupIntents, you can reduce friction for your customers, even as regulations change over time. Related guide: Setup Intents API

Constants

ERROR_MESSAGE_FOR_CANCELLATION_REASON = "invalid value for \"cancellation_reason\", must be one of [abandoned, duplicate, requested_by_customer]."
ERROR_MESSAGE_FOR_FLOW_DIRECTIONS = "invalid value for \"flow_directions\", must be one of [inbound, outbound]."
ERROR_MESSAGE_FOR_OBJECT = "invalid value for \"object\", must be one of [setup_intent]."
ERROR_MESSAGE_FOR_STATUS = "invalid value for \"status\", must be one of [canceled, processing, requires_action, requires_confirmation, requires_payment_method, succeeded]."
MAX_LENGTH_FOR_CLIENT_SECRET = 5000
MAX_LENGTH_FOR_DESCRIPTION = 5000
MAX_LENGTH_FOR_ID = 5000
MAX_LENGTH_FOR_USAGE = 5000
VALID_VALUES_FOR_CANCELLATION_REASON = String.static_array("abandoned", "duplicate", "requested_by_customer")
VALID_VALUES_FOR_FLOW_DIRECTIONS = String.static_array("inbound", "outbound")
VALID_VALUES_FOR_OBJECT = String.static_array("setup_intent")
VALID_VALUES_FOR_STATUS = String.static_array("canceled", "processing", "requires_action", "requires_confirmation", "requires_payment_method", "succeeded")

Constructors

new(*, __pull_for_json_serializable pull : JSON::PullParser)
Source
new(*, application : Stripe::SetupIntentApplication | Nil = nil, automatic_payment_methods : Stripe::SetupIntentAutomaticPaymentMethods | Nil = nil, cancellation_reason : String | Nil = nil, client_secret : String | Nil = nil, created : Int64 | Nil = nil, customer : Stripe::SetupIntentCustomer | Nil = nil, description : String | Nil = nil, flow_directions : Array(String) | Nil = nil, id : String | Nil = nil, last_setup_error : Stripe::SetupIntentLastSetupError | Nil = nil, latest_attempt : Stripe::SetupIntentLatestAttempt | Nil = nil, livemode : Bool | Nil = nil, mandate : Stripe::SetupIntentMandate | Nil = nil, metadata : Hash(String, String) | Nil = nil, next_action : Stripe::SetupIntentNextAction1 | Nil = nil, object : String | Nil = nil, on_behalf_of : Stripe::SetupIntentOnBehalfOf | Nil = nil, payment_method : Stripe::SetupIntentPaymentMethod | Nil = nil, payment_method_configuration_details : Stripe::SetupIntentPaymentMethodConfigurationDetails | Nil = nil, payment_method_options : Stripe::SetupIntentPaymentMethodOptions1 | Nil = nil, payment_method_types : Array(String) | Nil = nil, single_use_mandate : Stripe::SetupIntentSingleUseMandate | Nil = nil, status : String | Nil = nil, usage : String | Nil = nil, attach_to_self : Bool | Nil = nil)

Initializes the object @param [Hash] attributes Model attributes in the form of hash

Source

Instance methods

==(other : self)

Generates #hash and #== methods from all fields #== @return [Bool] #hash calculates hash code according to all attributes. #hash @return [UInt64] Hash code

application
Source
application=(new_value : Stripe::SetupIntentApplication | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] application Object to be assigned

Source
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.

Source
attach_to_self=(new_value : Bool | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] attach_to_self Object to be assigned

Source
automatic_payment_methods
Source
automatic_payment_methods=(new_value : Stripe::SetupIntentAutomaticPaymentMethods | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] automatic_payment_methods Object to be assigned

Source
cancellation_reason

Reason for cancellation of this SetupIntent, one of abandoned, requested_by_customer, or duplicate.

Source
cancellation_reason=(new_value : String | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] cancellation_reason Object to be assigned

Source
client_secret

The client secret of this SetupIntent. Used for client-side retrieval using a publishable key. The client secret can be used to complete payment setup from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.

Source
client_secret=(new_value : String | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] client_secret Object to be assigned

Source
created

Time at which the object was created. Measured in seconds since the Unix epoch.

Source
created=(new_value : Int64 | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] created Object to be assigned

Source
customer
Source
customer=(new_value : Stripe::SetupIntentCustomer | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] customer Object to be assigned

Source
description

An arbitrary string attached to the object. Often useful for displaying to users.

Source
description=(new_value : String | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] description Object to be assigned

Source
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.

Source
flow_directions=(new_value : Array(String) | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] flow_directions Object to be assigned

Source
hash(hasher)

Generates #hash and #== methods from all fields #== @return [Bool] #hash calculates hash code according to all attributes. #hash @return [UInt64] Hash code

id

Unique identifier for the object.

Source
id=(new_value : String | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] id Object to be assigned

Source
last_setup_error
Source
last_setup_error=(new_value : Stripe::SetupIntentLastSetupError | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] last_setup_error Object to be assigned

Source
latest_attempt
Source
latest_attempt=(new_value : Stripe::SetupIntentLatestAttempt | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] latest_attempt Object to be assigned

Source
list_invalid_properties

Show invalid properties with the reasons. Usually used together with valid? @return Array for valid properties with the reasons

Source
livemode

Has the value true if the object exists in live mode or the value false if the object exists in test mode.

Source
livemode=(new_value : Bool | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] livemode Object to be assigned

Source
mandate
Source
mandate=(new_value : Stripe::SetupIntentMandate | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] mandate Object to be assigned

Source
metadata
Source
metadata=(new_value : Hash(String, String) | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] metadata Object to be assigned

Source
next_action
Source
next_action=(new_value : Stripe::SetupIntentNextAction1 | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] next_action Object to be assigned

Source
object

String representing the object's type. Objects of the same type share the same value.

Source
object=(new_value : String | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] object Object to be assigned

Source
on_behalf_of
Source
on_behalf_of=(new_value : Stripe::SetupIntentOnBehalfOf | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] on_behalf_of Object to be assigned

Source
payment_method
Source
payment_method=(new_value : Stripe::SetupIntentPaymentMethod | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] payment_method Object to be assigned

Source
payment_method_configuration_details
Source
payment_method_configuration_details=(new_value : Stripe::SetupIntentPaymentMethodConfigurationDetails | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] payment_method_configuration_details Object to be assigned

Source
payment_method_options
Source
payment_method_options=(new_value : Stripe::SetupIntentPaymentMethodOptions1 | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] payment_method_options Object to be assigned

Source
payment_method_types

The list of payment method types (e.g. card) that this SetupIntent is allowed to set up.

Source
payment_method_types=(new_value : Array(String) | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] payment_method_types Object to be assigned

Source
single_use_mandate
Source
single_use_mandate=(new_value : Stripe::SetupIntentSingleUseMandate | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] single_use_mandate Object to be assigned

Source
status

Status of this SetupIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, canceled, or succeeded.

Source
status=(new_value : String | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] status Object to be assigned

Source
usage

Indicates how the payment method is intended to be used in the future. Use on_session if you intend to only reuse the payment method when the customer is in your checkout flow. Use off_session if your customer may or may not be in your checkout flow. If not provided, this value defaults to off_session.

Source
usage=(new_value : String | Nil)

Custom attribute writer method checking allowed values (enum). @param [Object] usage Object to be assigned

Source
valid?

Check to see if the all the properties in the model are valid @return true if the model is valid

Source