Create a SetupIntent
POST
/v1/setup_intentsRequest
Set to true to attempt to confirm this SetupIntent immediately. This parameter defaults to false. If the payment method attached is a card, a return_url may be provided in case additional authentication is required.
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.
An arbitrary string attached to the object. Often useful for displaying to users.
Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
ID of the payment method used with this SetupIntent.
The list of payment method types (e.g. card) that this SetupIntent is allowed to set up.
Payment-method-specific configuration for this SetupIntent.
When included, this hash creates a PaymentMethod that is set as the payment_method value in the SetupIntent.
The type of the PaymentMethod.
Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
The type of the PaymentMethod. An additional object is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod.
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.
The URL to redirect your customer back to after they authenticate or cancel their payment 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 can only be used with confirm=true.
{
"confirm": true,
"customer": "string",
"description": "string",
"metadata": {},
"payment_method": "string",
"payment_method_types": [
"string"
],
"payment_method_options": {
"card": {
"request_three_d_secure": "string"
}
},
"payment_method_data": {
"type": "card",
"billing_details": {
"address": {
"city": "string",
"country": "string",
"line1": "string",
"line2": "string",
"postal_code": "string",
"state": "string"
},
"email": "string",
"name": "string",
"phone": "string"
},
"card": {
"exp_month": "string",
"exp_year": "string",
"number": "string",
"cvc": "string",
"name": "string"
},
"wechat_pay": {
"payment_code": "string"
},
"alipayplus": {
"payment_code": "string"
}
},
"usage": "on_session",
"return_url": "string"
}
Request samples
Responses
[RETRIEVABLE WITH PK] Unique identifier for the object, like ""seti_xxxxx".
[RETRIEVABLE WITH PK] "setup_intent"
[RETRIEVABLE WITH PK] Reason for cancellation of this SetupIntent, one of abandoned, requested_by_customer, or duplicate.
[RETRIEVABLE WITH PK] 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.
[RETRIEVABLE WITH PK] Time at which the object was created. Measured in seconds since the Unix epoch.
[EXPANDABLE] 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.
[RETRIEVABLE WITH PK] An arbitrary string attached to the object. Often useful for displaying to users.
[RETRIEVABLE WITH PK] The error encountered in the previous SetupIntent confirmation.
For some errors that could be handled programmatically, a short string indicating the error code reported.
For card errors resulting from a card issuer decline, a short string indicating the card issuer’s reason for the decline if they provide one.
A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.
If the error is parameter-specific, the parameter related to the error. For example, you can use this to display a message near the correct form field.
The PaymentMethod object for errors returned on a request involving a PaymentMethod.
If the error is specific to the type of payment method, the payment method type that had a problem.
The type of error returned. One of api_error, card_error, idempotency_error, or invalid_request_error
[EXPANDABLE] The most recent SetupAttempt for this SetupIntent.
[RETRIEVABLE WITH PK] Has the value true if the object exists in live mode or the value false if the object exists in test mode.
[EXPANDABLE] ID of the multi use Mandate generated by the SetupIntent.
Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
[RETRIEVABLE WITH PK] If present, this property tells you what actions you need to take in order for your customer to continue payment setup.
Type of the next action to perform
[EXPANDABLE][RETRIEVABLE WITH PK] ID of the payment method used with this SetupIntent.
Payment-method-specific configuration for this SetupIntent.
The list of payment method types (e.g. card) that this SetupIntent is allowed to set up.
[EXPANDABLE] ID of the single_use Mandate generated by the SetupIntent.
[RETRIEVABLE WITH PK] Status of this SetupIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, canceled, or succeeded.
The url that the cutomer will be redirected to.
{
"id": "string",
"object": "string",
"cancellation_reason": "string",
"client_secret": "string",
"created": 0,
"customer": "string",
"description": "string",
"last_setup_error": {
"code": "string",
"decline_code": "string",
"message": "string",
"param": "string",
"payment_method": {
"id": "string",
"object": "string",
"created": 0,
"customer": "string",
"metadata": {},
"livemode": true,
"billing_details": {
"address": {
"city": "string",
"country": "string",
"line1": "string",
"line2": "string",
"postal_code": "string",
"state": "string"
},
"email": "string",
"name": "string",
"phone": "string"
},
"type": "card",
"card": {
"brand": "string",
"checks": {
"address_line1_check": "string",
"address_zip_check": "string",
"cvc_check": "string"
},
"country": "string",
"exp_month": 0,
"exp_year": 0,
"fingerprint": "string",
"funding": "string",
"last4": "string",
"metadata": {}
}
},
"payment_method_type": "string",
"type": "string"
},
"latest_attempt": "string",
"livemode": true,
"mandate": "string",
"metadata": {},
"next_action": {
"type": "string",
"redirect_to_url": {
"return_url": "string",
"url": "string"
},
"ddc_redirect": {
"return_url": "string",
"url": "string"
},
"challenge_redirect": {
"return_url": "string",
"url": "string"
},
"alipayplus_handle_redirect": {
"return_url": "string",
"schemeUrl": "string",
"applinkUrl": "string",
"normalUrl": "string"
},
"alipay_handle_redirect": {
"native_data": "string",
"native_url": "string",
"return_url": "string",
"url": "string"
},
"wechat_pay_display_qr_code": {
"data": "string",
"data_ur": "string",
"image_url_png": "string",
"image_url_svg": "string"
},
"wechat_pay_redirect_to_android_app": {
"native_url": "string"
},
"wechat_pay_redirect_to_ios_app": {
"native_url": "string"
},
"wechat_pay_redirect_to_web": {
"url": "string"
},
"wechat_pay_official_account_params": {
"appId": "string",
"timeStamp": "string",
"nonceStr": "string",
"signType": "string",
"paySign": "string",
"package": "string"
},
"truemoney_handle_redirect": {
"url": "string"
},
"akulaku_handle_redirect": {
"url": "string"
},
"bank_transfer_id_handle_redirect": {
"url": "string"
},
"promptpay_handle_redirect": {
"url": "string"
},
"dana_handle_redirect": {
"url": "string"
},
"shopeepay_handle_redirect": {
"url": "string"
},
"gcash_handle_redirect": {
"url": "string"
},
"rabbit_line_pay_handle_redirect": {
"url": "string"
},
"alipay_hk_handle_redirect": {
"url": "string"
},
"bpi_handle_redirect": {
"url": "string"
}
},
"payment_method": "string",
"payment_method_options": {
"card": {
"request_three_d_secure": "string"
}
},
"payment_method_types": [
"string"
],
"single_use_mandate": "string",
"status": "string",
"return_url": "string"
}