class Stripe::SetupIntent

Overview

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

Included Modules

Defined in:

stripe/models/setup_intent.cr

Constant Summary

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

Instance Method Summary

Instance methods inherited from module OpenApi::Json

after_initialize after_initialize, clone clone, eql?(o : self) eql?, to_hash : Hash(String, JSON::Any) to_hash, to_json_any : JSON::Any to_json_any

Class methods inherited from module OpenApi::Json

build_from_hash(hash : Hash) build_from_hash, build_from_json_any(json_any : JSON::Any) build_from_json_any

Instance methods inherited from module OpenApi::Validatable

list_invalid_properties : Array(String) list_invalid_properties, list_invalid_properties_for(key : String) : Array(String) list_invalid_properties_for, valid? : Bool valid?, validate : Nil validate

Constructor Detail

def self.new(pull : JSON::PullParser) #

[View source]
def self.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


[View source]

Instance Method Detail

def ==(other : self) #

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


def application : Stripe::SetupIntentApplication | Nil #

[View source]
def application=(new_value : Stripe::SetupIntentApplication | Nil) #

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


[View source]
def attach_to_self : Bool | Nil #

[View source]
def attach_to_self=(new_value : Bool | Nil) #

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


[View source]
def automatic_payment_methods : Stripe::SetupIntentAutomaticPaymentMethods | Nil #

[View source]
def 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


[View source]
def cancellation_reason : String | Nil #

[View source]
def cancellation_reason=(new_value : String | Nil) #

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


[View source]
def client_secret : String | Nil #

[View source]
def client_secret=(new_value : String | Nil) #

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


[View source]
def created : Int64 | Nil #

[View source]
def created=(new_value : Int64 | Nil) #

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


[View source]
def customer : Stripe::SetupIntentCustomer | Nil #

[View source]
def customer=(new_value : Stripe::SetupIntentCustomer | Nil) #

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


[View source]
def description : String | Nil #

[View source]
def description=(new_value : String | Nil) #

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


[View source]
def flow_directions : Array(String) | Nil #

[View source]
def flow_directions=(new_value : Array(String) | Nil) #

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


[View source]
def hash(hasher) #

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


def id : String | Nil #

[View source]
def id=(new_value : String | Nil) #

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


[View source]
def last_setup_error : Stripe::SetupIntentLastSetupError | Nil #

[View source]
def 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


[View source]
def latest_attempt : Stripe::SetupIntentLatestAttempt | Nil #

[View source]
def latest_attempt=(new_value : Stripe::SetupIntentLatestAttempt | Nil) #

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


[View source]
def list_invalid_properties : Array(String) #

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


[View source]
def livemode : Bool | Nil #

[View source]
def livemode=(new_value : Bool | Nil) #

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


[View source]
def mandate : Stripe::SetupIntentMandate | Nil #

[View source]
def mandate=(new_value : Stripe::SetupIntentMandate | Nil) #

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


[View source]
def metadata : Hash(String, String) | Nil #

[View source]
def metadata=(new_value : Hash(String, String) | Nil) #

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


[View source]
def next_action : Stripe::SetupIntentNextAction1 | Nil #

[View source]
def next_action=(new_value : Stripe::SetupIntentNextAction1 | Nil) #

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


[View source]
def object : String | Nil #

[View source]
def object=(new_value : String | Nil) #

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


[View source]
def on_behalf_of : Stripe::SetupIntentOnBehalfOf | Nil #

[View source]
def 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


[View source]
def payment_method : Stripe::SetupIntentPaymentMethod | Nil #

[View source]
def payment_method=(new_value : Stripe::SetupIntentPaymentMethod | Nil) #

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


[View source]
def payment_method_configuration_details : Stripe::SetupIntentPaymentMethodConfigurationDetails | Nil #

[View source]
def 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


[View source]
def payment_method_options : Stripe::SetupIntentPaymentMethodOptions1 | Nil #

[View source]
def 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


[View source]
def payment_method_types : Array(String) | Nil #

[View source]
def 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


[View source]
def single_use_mandate : Stripe::SetupIntentSingleUseMandate | Nil #

[View source]
def 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


[View source]
def status : String | Nil #

[View source]
def status=(new_value : String | Nil) #

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


[View source]
def usage : String | Nil #

[View source]
def usage=(new_value : String | Nil) #

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


[View source]
def valid? : Bool #

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


[View source]