Confirm that your customer intends to pay with current or provided payment method. Upon confirmation, the PaymentIntent will attempt to initiate a payment. If the selected payment method requires additional authentication steps, the PaymentIntent will transition to the requires_
status and suggest additional actions via next_
. If payment fails, the PaymentIntent transitions to the requires_
status or the canceled
status if the confirmation limit is reached. If payment succeeds, the PaymentIntent will transition to the succeeded
status (or requires_
, if capture_
is set to manual
). If the confirmation_
is automatic
, payment may be attempted using our client SDKs and the PaymentIntent’s client_secret. After next_
s are handled by the client, no additional confirmation is required to complete the payment. If the confirmation_
is manual
, all payment attempts must be initiated using a secret key. If any actions are required for the payment, the PaymentIntent will return to the requires_
state after those actions are completed. Your server needs to then explicitly re-confirm the PaymentIntent to initiate the next payment attempt. There is a variable upper limit on how many times a PaymentIntent can be confirmed. After this limit is reached, any further calls to this endpoint will transition the PaymentIntent to the canceled
state.
Parameters
- payment_
methodstring ID of the payment method (a PaymentMethod, Card, or compatible Source object) to attach to this PaymentIntent.
- receipt_
emailstring Email address that the receipt for the resulting payment will be sent to. If
receipt_
is specified for a payment in live mode, a receipt will be sent regardless of your email settings.email - setup_
future_ usageenum Indicates that you intend to make future payments with this PaymentIntent’s payment method.
If you provide a Customer with the PaymentIntent, you can use this parameter to attach the payment method to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don’t provide a Customer, you can still attach the payment method to a Customer after the transaction completes.
If the payment method is
card_
and isn’t a digital wallet, Stripe creates and attaches a generated_card payment method representing the card to the Customer instead.present When processing card payments, Stripe uses
setup_
to help you comply with regional legislation and network rules, such as SCA.future_ usage If you’ve already set
setup_
and you’re performing a request using a publishable key, you can only update the value fromfuture_ usage on_
tosession off_
.session Possible enum valuesoff_
session Use
off_
if your customer may or may not be present in your checkout flow.session on_
session Use
on_
if you intend to only reuse the payment method when your customer is present in your checkout flow.session - shippingassociative array
Shipping information for this PaymentIntent.
More parameters
- capture_
methodenumsecret key only - confirmation_
tokenstring - error_
on_ requires_ actionboolean - mandatestringsecret key only
- mandate_
dataassociative array - off_
sessionboolean | stringsecret key only - payment_
method_ dataassociative array - payment_
method_ optionsassociative arraysecret key only - payment_
method_ typesarray of stringssecret key only - radar_
optionsassociative arraysecret key only - return_
urlstring - use_
stripe_ sdkboolean
Returns
Returns the resulting PaymentIntent after all possible transitions are applied.
{ "id": "pi_3MtweELkdIwHu7ix0Dt0gF2H", "object": "payment_intent", "amount": 2000, "amount_capturable": 0, "amount_details": { "tip": {} }, "amount_received": 2000, "application": null, "application_fee_amount": null, "automatic_payment_methods": { "enabled": true }, "canceled_at": null, "cancellation_reason": null, "capture_method": "automatic", "client_secret": "pi_3MtweELkdIwHu7ix0Dt0gF2H_secret_ALlpPMIZse0ac8YzPxkMkFgGC", "confirmation_method": "automatic", "created": 1680802258, "currency": "usd", "customer": null, "description": null, "invoice": null, "last_payment_error": null, "latest_charge": "ch_3MtweELkdIwHu7ix05lnLAFd", "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, "payment_method": "pm_1MtweELkdIwHu7ixxrsejPtG", "payment_method_options": { "card": { "installments": null, "mandate_options": null, "network": null, "request_three_d_secure": "automatic" }, "link": { "persistent_token": null } }, "payment_method_types": [ "card", "link" ], "processing": null, "receipt_email": null, "review": null, "setup_future_usage": null, "shipping": null, "source": null, "statement_descriptor": null, "statement_descriptor_suffix": null, "status": "succeeded", "transfer_data": null, "transfer_group": null}
Manually reconcile the remaining amount for a customer_
PaymentIntent.
Parameters
- amountinteger
Amount that you intend to apply to this PaymentIntent from the customer’s cash balance. If the PaymentIntent was created by an Invoice, the full amount of the PaymentIntent is applied regardless of this parameter.
A positive integer representing how much to charge in the smallest currency unit (for example, 100 cents to charge 1 USD or 100 to charge 100 JPY, a zero-decimal currency). The maximum amount is the amount of the PaymentIntent.
When you omit the amount, it defaults to the remaining amount requested on the PaymentIntent.
- currencyenum
Three-letter ISO currency code, in lowercase. Must be a supported currency.
Returns
Returns a PaymentIntent object.
{ "id": "pi_1GszwY2eZvKYlo2CohCEmT6b", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, "amount_details": { "tip": {} }, "amount_received": 0, "application": null, "application_fee_amount": null, "automatic_payment_methods": null, "canceled_at": null, "cancellation_reason": null, "capture_method": "automatic", "client_secret": "pi_1GszwY2eZvKYlo2CohCEmT6b_secret_1jQJzqkrQvx4BpwI5hn6WSEO5", "confirmation_method": "automatic", "created": 1591918582, "currency": "usd", "customer": null, "description": "Created by stripe.com/docs demo", "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, "payment_method": null, "payment_method_options": { "card": { "installments": null, "mandate_options": null, "network": null, "request_three_d_secure": "automatic" } }, "payment_method_types": [ "card" ], "processing": null, "receipt_email": null, "redaction": null, "review": null, "setup_future_usage": null, "shipping": null, "statement_descriptor": null, "statement_descriptor_suffix": null, "status": "requires_payment_method", "transfer_data": null, "transfer_group": null}
Search for PaymentIntents you’ve previously created using Stripe’s Search Query Language. Don’t use search in read-after-write flows where strict consistency is necessary. Under normal operating conditions, data is searchable in less than a minute. Occasionally, propagation of new or updated data can be up to an hour behind during outages. Search functionality is not available to merchants in India.
Parameters
- querystringRequired
The search query string. See search query language and the list of supported query fields for payment intents.
- limitinteger
A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
- pagestring
A cursor for pagination across multiple pages of results. Don’t include this parameter on the first call. Use the next_page value returned in a previous response to request subsequent results.
Returns
A dictionary with a data
property that contains an array of up to limit
PaymentIntents. If no objects match the query, the resulting array will be empty. See the related guide on expanding properties in lists.
{ "object": "search_result", "url": "/v1/payment_intents/search", "has_more": false, "data": [ { "id": "pi_3MtwBwLkdIwHu7ix28a3tqPa", "object": "payment_intent", "amount": 2000, "amount_capturable": 0, "amount_details": { "tip": {} }, "amount_received": 0, "application": null, "application_fee_amount": null, "automatic_payment_methods": { "enabled": true }, "canceled_at": null, "cancellation_reason": null, "capture_method": "automatic", "client_secret": "pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH", "confirmation_method": "automatic", "created": 1680800504, "currency": "usd", "customer": null, "description": null, "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, "payment_method": null, "payment_method_options": { "card": { "installments": null, "mandate_options": null, "network": null, "request_three_d_secure": "automatic" }, "link": { "persistent_token": null } }, "payment_method_types": [ "card", "link" ], "processing": null, "receipt_email": null, "review": null, "setup_future_usage": null, "shipping": null, "source": null, "statement_descriptor": null, "statement_descriptor_suffix": null, "status": "requires_payment_method", "transfer_data": null, "transfer_group": null } ]}
Verifies microdeposits on a PaymentIntent object.
Parameters
- amountsarray of integers
Two positive integers, in cents, equal to the values of the microdeposits sent to the bank account.
- descriptor_
codestring A six-character code starting with SM present in the microdeposit sent to the bank account.
Returns
Returns a PaymentIntent object.
{ "id": "pi_1DtBRR2eZvKYlo2CmCVxxvd7", "object": "payment_intent", "amount": 1099, "amount_capturable": 0, "amount_details": { "tip": {} }, "amount_received": 0, "application": null, "application_fee_amount": null, "automatic_payment_methods": null, "canceled_at": null, "cancellation_reason": null, "capture_method": "automatic", "client_secret": "pi_1DtBRR2eZvKYlo2CmCVxxvd7_secret_l80vlOGz9kZQwnzocExJQUsJx", "confirmation_method": "automatic", "created": 1680800210, "currency": "usd", "customer": null, "description": null, "invoice": null, "last_payment_error": null, "latest_charge": null, "livemode": false, "metadata": {}, "next_action": null, "on_behalf_of": null, "payment_method": "pm_1Mtw7C2eZvKYlo2CPsW0F8g0", "payment_method_options": { "acss_debit": { "mandate_options": { "interval_description": "First day of every month", "payment_schedule": "interval", "transaction_type": "personal" }, "verification_method": "automatic" } }, "payment_method_types": [ "acss_debit" ], "processing": null, "receipt_email": null, "redaction": null, "review": null, "setup_future_usage": null, "shipping": null, "statement_descriptor": null, "statement_descriptor_suffix": null, "status": "succeeded", "transfer_data": null, "transfer_group": null}