openapi: 3.0.0
info:
title: Stripe Accounts Account Confirm API
description: This is an object representing a Stripe account. You can retrieve it to see properties on the account like its current requirements or if the account is enabled to make live charges or receive payouts.
contact:
email: dev-platform@stripe.com
name: Stripe Dev Platform Team
url: https://stripe.com
termsOfService: https://stripe.com/us/terms/
version: '2023-10-16'
x-stripeSpecFilename: spec3
servers:
- url: https://api.stripe.com/
security:
- basicAuth: []
- bearerAuth: []
tags:
- name: Confirm
paths:
/v1/payment_intents/{intent}/confirm:
post:
description: '<p>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 <code>requires_action</code> status and
suggest additional actions via <code>next_action</code>. If payment fails,
the PaymentIntent transitions to the <code>requires_payment_method</code> status or the
<code>canceled</code> status if the confirmation limit is reached. If
payment succeeds, the PaymentIntent will transition to the <code>succeeded</code>
status (or <code>requires_capture</code>, if <code>capture_method</code> is set to <code>manual</code>).
If the <code>confirmation_method</code> is <code>automatic</code>, payment may be attempted
using our <a href="/docs/stripe-js/reference#stripe-handle-card-payment">client SDKs</a>
and the PaymentIntent’s <a href="#payment_intent_object-client_secret">client_secret</a>.
After <code>next_action</code>s are handled by the client, no additional
confirmation is required to complete the payment.
If the <code>confirmation_method</code> is <code>manual</code>, all payment attempts must be
initiated using a secret key.
If any actions are required for the payment, the PaymentIntent will
return to the <code>requires_confirmation</code> state
after those actions are completed. Your server needs to then
explicitly re-confirm the PaymentIntent to initiate the next payment
attempt. Read the <a href="/docs/payments/payment-intents/web-manual">expanded documentation</a>
to learn more about manual confirmation.</p>'
operationId: postPaymentIntentsIntentConfirm
parameters:
- in: path
name: intent
required: true
schema:
maxLength: 5000
type: string
style: simple
requestBody:
content:
application/x-www-form-urlencoded:
encoding:
expand:
explode: true
style: deepObject
mandate_data:
explode: true
style: deepObject
off_session:
explode: true
style: deepObject
payment_method_data:
explode: true
style: deepObject
payment_method_options:
explode: true
style: deepObject
payment_method_types:
explode: true
style: deepObject
radar_options:
explode: true
style: deepObject
receipt_email:
explode: true
style: deepObject
shipping:
explode: true
style: deepObject
schema:
additionalProperties: false
$ref: '#/components/schemas/PostPaymentIntentsIntentConfirmRequest'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/payment_intent'
description: Successful response.
default:
content:
application/json:
schema:
$ref: '#/components/schemas/error'
description: Error response.
summary: Stripe Post Payment Intents Confirm
x-api-evangelist-processing:
GenerateOperationSummariesFromPath: true
PascalCaseOperationSummaries: true
CaselCaseOperationIds: true
ChooseTags: true
tags:
- Confirm
components:
schemas:
payment_intent:
description: 'A PaymentIntent guides you through the process of collecting a payment from your customer.
We recommend that you create exactly one PaymentIntent for each order or
customer session in your system. You can reference the PaymentIntent later to
see the history of payment attempts for a particular session.
A PaymentIntent transitions through
[multiple statuses](https://stripe.com/docs/payments/intents#intent-statuses)
throughout its lifetime as it interfaces with Stripe.js to perform
authentication flows and ultimately creates at most one successful charge.
Related guide: [Payment Intents API](https://stripe.com/docs/payments/payment-intents)'
properties:
amount:
description: Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the [smallest currency unit](https://stripe.com/docs/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://stripe.com/docs/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).
type: integer
amount_capturable:
description: Amount that can be captured from this PaymentIntent.
type: integer
amount_details:
$ref: '#/components/schemas/payment_flows_amount_details'
amount_received:
description: Amount that this PaymentIntent collects.
type: integer
application:
anyOf:
- maxLength: 5000
type: string
- $ref: '#/components/schemas/application'
description: ID of the Connect application that created the PaymentIntent.
nullable: true
x-expansionResources:
oneOf:
- $ref: '#/components/schemas/application'
application_fee_amount:
description: The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total payment amount. For more information, see the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
nullable: true
type: integer
automatic_payment_methods:
anyOf:
- $ref: '#/components/schemas/payment_flows_automatic_payment_methods_payment_intent'
description: Settings to configure compatible payment methods from the [Stripe Dashboard](https://dashboard.stripe.com/settings/payment_methods)
nullable: true
canceled_at:
description: Populated when `status` is `canceled`, this is the time at which the PaymentIntent was canceled. Measured in seconds since the Unix epoch.
format: unix-time
nullable: true
type: integer
cancellation_reason:
description: Reason for cancellation of this PaymentIntent, either user-provided (`duplicate`, `fraudulent`, `requested_by_customer`, or `abandoned`) or generated by Stripe internally (`failed_invoice`, `void_invoice`, or `automatic`).
enum:
- abandoned
- automatic
- duplicate
- failed_invoice
- fraudulent
- requested_by_customer
- void_invoice
nullable: true
type: string
capture_method:
description: Controls when the funds will be captured from the customer's account.
enum:
- automatic
- automatic_async
- manual
type: string
client_secret:
description: "The client secret of this PaymentIntent. Used for client-side retrieval using a publishable key. \n\nThe client secret can be used to complete a payment 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.\n\nRefer to our docs to [accept a payment](https://stripe.com/docs/payments/accept-a-payment?ui=elements) and learn about how `client_secret` should be handled."
maxLength: 5000
nullable: true
type: string
confirmation_method:
description: Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment.
enum:
- automatic
- manual
type: string
created:
description: Time at which the object was created. Measured in seconds since the Unix epoch.
format: unix-time
type: integer
currency:
description: 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).
type: string
customer:
anyOf:
- maxLength: 5000
type: string
- $ref: '#/components/schemas/customer'
- $ref: '#/components/schemas/deleted_customer'
description: 'ID of the Customer this PaymentIntent belongs to, if one exists.
Payment methods attached to other Customers cannot be used with this PaymentIntent.
If present in combination with [setup_future_usage](https://stripe.com/docs/api#payment_intent_object-setup_future_usage), this PaymentIntent''s payment method will be attached to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete.'
nullable: true
x-expansionResources:
oneOf:
- $ref: '#/components/schemas/customer'
- $ref: '#/components/schemas/deleted_customer'
description:
description: An arbitrary string attached to the object. Often useful for displaying to users.
maxLength: 5000
nullable: true
type: string
id:
description: Unique identifier for the object.
maxLength: 5000
type: string
invoice:
anyOf:
- maxLength: 5000
type: string
- $ref: '#/components/schemas/invoice'
description: ID of the invoice that created this PaymentIntent, if it exists.
nullable: true
x-expansionResources:
oneOf:
- $ref: '#/components/schemas/invoice'
last_payment_error:
anyOf:
- $ref: '#/components/schemas/api_errors'
description: The payment error encountered in the previous PaymentIntent confirmation. It will be cleared if the PaymentIntent is later updated for any reason.
nullable: true
latest_charge:
anyOf:
- maxLength: 5000
type: string
- $ref: '#/components/schemas/charge'
description: The latest charge created by this PaymentIntent.
nullable: true
x-expansionResources:
oneOf:
- $ref: '#/components/schemas/charge'
livemode:
description: Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
type: boolean
metadata:
additionalProperties:
maxLength: 500
type: string
description: Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Learn more about [storing information in metadata](https://stripe.com/docs/payments/payment-intents/creating-payment-intents#storing-information-in-metadata).
type: object
next_action:
anyOf:
- $ref: '#/components/schemas/payment_intent_next_action'
description: If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.
nullable: true
object:
description: String representing the object's type. Objects of the same type share the same value.
enum:
- payment_intent
type: string
on_behalf_of:
anyOf:
- maxLength: 5000
type: string
- $ref: '#/components/schemas/account'
description: The account (if any) for which the funds of the PaymentIntent are intended. See the PaymentIntents [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts) for details.
nullable: true
x-expansionResources:
oneOf:
- $ref: '#/components/schemas/account'
payment_method:
anyOf:
- maxLength: 5000
type: string
- $ref: '#/components/schemas/payment_method'
description: ID of the payment method used in this PaymentIntent.
nullable: true
x-expansionResources:
oneOf:
- $ref: '#/components/schemas/payment_method'
payment_method_configuration_details:
anyOf:
- $ref: '#/components/schemas/payment_method_config_biz_payment_method_configuration_details'
description: Information about the payment method configuration used for this PaymentIntent.
nullable: true
payment_method_options:
anyOf:
- $ref: '#/components/schemas/payment_intent_payment_method_options'
description: Payment-method-specific configuration for this PaymentIntent.
nullable: true
payment_method_types:
description: The list of payment method types (e.g. card) that this PaymentIntent is allowed to use.
items:
maxLength: 5000
type: string
type: array
processing:
anyOf:
- $ref: '#/components/schemas/payment_intent_processing'
description: If present, this property tells you about the processing state of the payment.
nullable: true
receipt_email:
description: Email address that the receipt for the resulting payment will be sent to. If `receipt_email` is specified for a payment in live mode, a receipt will be sent regardless of your [email settings](https://dashboard.stripe.com/account/emails).
maxLength: 5000
nullable: true
type: string
review:
anyOf:
- maxLength: 5000
type: string
- $ref: '#/components/schemas/review'
description: ID of the review associated with this PaymentIntent, if any.
nullable: true
x-expansionResources:
oneOf:
- $ref: '#/components/schemas/review'
setup_future_usage:
description: 'Indicates that you intend to make future payments with this PaymentIntent''s payment method.
Providing this parameter will [attach the payment method](https://stripe.com/docs/payments/save-during-payment) to the PaymentIntent''s Customer, if present, after the PaymentIntent is confirmed and any required actions from the user are complete. If no Customer was provided, the payment method can still be [attached](https://stripe.com/docs/api/payment_methods/attach) to a Customer after the transaction completes.
When processing card payments, Stripe also uses `setup_future_usage` to dynamically optimize your payment flow and comply with regional legislation and network rules, such as [SCA](https://stripe.com/docs/strong-customer-authentication).'
enum:
- off_session
- on_session
nullable: true
type: string
shipping:
anyOf:
- $ref: '#/components/schemas/shipping'
description: Shipping information for this PaymentIntent.
nullable: true
statement_descriptor:
description: For card charges, use [statement_descriptor_suffix](https://stripe.com/docs/payments/account/statement-descriptors#dynamic). Otherwise, you can use this value as the complete description of a charge on your customers' statements. It must contain at least one letter and be 1–22 characters long.
maxLength: 5000
nullable: true
type: string
statement_descriptor_suffix:
description: Provides information about a card payment that customers see on their statements. Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the account to form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor.
maxLength: 5000
nullable: true
type: string
status:
description: Status of this PaymentIntent, one of `requires_payment_method`, `requires_confirmation`, `requires_action`, `processing`, `requires_capture`, `canceled`, or `succeeded`. Read more about each PaymentIntent [status](https://stripe.com/docs/payments/intents#intent-statuses).
enum:
- canceled
- processing
- requires_action
- requires_capture
- requires_confirmation
- requires_payment_method
- succeeded
type: string
transfer_data:
anyOf:
- $ref: '#/components/schemas/transfer_data'
description: The data that automatically creates a Transfer after the payment finalizes. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).
nullable: true
transfer_group:
description: A string that identifies the resulting payment as part of a group. Learn more about the [use case for connected accounts](https://stripe.com/docs/connect/separate-charges-and-transfers).
maxLength: 5000
nullable: true
type: string
required:
- amount
- capture_method
- confirmation_method
- created
- currency
- id
- livemode
- object
- payment_method_types
- status
title: PaymentIntent
type: object
x-expandableFields:
- amount_details
- application
- automatic_payment_methods
- customer
- invoice
- last_payment_error
- latest_charge
- next_action
- on_behalf_of
- payment_method
- payment_method_configuration_details
- payment_method_options
- processing
- review
- shipping
- transfer_data
x-resourceId: payment_intent
error:
description: An error response from the Stripe API
properties:
error:
$ref: '#/components/schemas/api_errors'
required:
- error
type: object
PostPaymentIntentsIntentConfirmRequest:
type: object
properties:
capture_method:
description: Controls when the funds will be captured from the customer's account.
enum:
- automatic
- automatic_async
- manual
type: string
client_secret:
description: The client secret of the PaymentIntent.
maxLength: 5000
type: string
error_on_requires_action:
description: Set to `true` to fail the payment attempt if the PaymentIntent transitions into `requires_action`. This parameter is intended for simpler integrations that do not handle customer actions, like [saving cards without authentication](https://stripe.com/docs/payments/save-card-without-authentication).
type: boolean
expand:
description: Specifies which fields in the response should be expanded.
items:
maxLength: 5000
type: string
type: array
mandate:
description: ID of the mandate that's used for this payment.
maxLength: 5000
type: string
mandate_data:
anyOf:
- properties:
customer_acceptance:
properties:
accepted_at:
format: unix-time
type: integer
offline:
properties: {}
title: offline_param
type: object
online:
properties:
ip_address:
type: string
user_agent:
maxLength: 5000
type: string
required:
- ip_address
- user_agent
title: online_param
type: object
type:
enum:
- offline
- online
maxLength: 5000
type: string
required:
- type
title: customer_acceptance_param
type: object
required:
- customer_acceptance
title: secret_key_param
type: object
- enum:
- ''
type: string
- description: This hash contains details about the Mandate to create
properties:
customer_acceptance:
properties:
online:
properties:
ip_address:
type: string
user_agent:
maxLength: 5000
type: string
title: online_param
type: object
type:
enum:
- online
maxLength: 5000
type: string
required:
- online
- type
title: customer_acceptance_param
type: object
required:
- customer_acceptance
title: client_key_param
type: object
off_session:
anyOf:
- type: boolean
- enum:
- one_off
- recurring
maxLength: 5000
type: string
description: Set to `true` to indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and [charge them later](https://stripe.com/docs/payments/cards/charging-saved-cards).
payment_method:
description: ID of the payment method (a PaymentMethod, Card, or [compatible Source](https://stripe.com/docs/payments/payment-methods/transitioning#compatibility) object) to attach to this PaymentIntent.
maxLength: 5000
type: string
payment_method_data:
description: 'If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear
in the [payment_method](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-payment_method)
property on the PaymentIntent.'
properties:
acss_debit:
properties:
account_number:
maxLength: 5000
type: string
institution_number:
maxLength: 5000
type: string
transit_number:
maxLength: 5000
type: string
required:
- account_number
- institution_number
- transit_number
title: payment_method_param
type: object
affirm:
properties: {}
title: param
type: object
afterpay_clearpay:
properties: {}
title: param
type: object
alipay:
properties: {}
title: param
type: object
au_becs_debit:
properties:
account_number:
maxLength: 5000
type: string
bsb_number:
maxLength: 5000
type: string
required:
- account_number
- bsb_number
title: param
type: object
bacs_debit:
properties:
account_number:
maxLength: 5000
type: string
sort_code:
maxLength: 5000
type: string
title: param
type: object
bancontact:
properties: {}
title: param
type: object
billing_details:
properties:
address:
anyOf:
- properties:
city:
maxLength: 5000
type: string
country:
maxLength: 5000
type: string
line1:
maxLength: 5000
type: string
line2:
maxLength: 5000
type: string
postal_code:
maxLength: 5000
type: string
state:
maxLength: 5000
type: string
title: billing_details_address
type: object
- enum:
- ''
type: string
email:
anyOf:
- type: string
- enum:
- ''
type: string
name:
anyOf:
- maxLength: 5000
type: string
- enum:
- ''
type: string
phone:
anyOf:
- maxLength: 5000
type: string
- enum:
- ''
type: string
title: billing_details_inner_params
type: object
blik:
properties: {}
title: param
type: object
boleto:
properties:
tax_id:
maxLength: 5000
type: string
required:
- tax_id
title: param
type: object
cashapp:
properties: {}
title: param
type: object
customer_balance:
properties: {}
title: param
type: object
eps:
properties:
bank:
enum:
- arzte_und_apotheker_bank
- austrian_anadi_bank_ag
- bank_austria
- bankhaus_carl_spangler
- bankhaus_schelhammer_und_schattera_ag
- bawag_psk_ag
- bks_bank_ag
- brull_kallmus_bank_ag
- btv_vier_lander_bank
- capital_bank_grawe_gruppe_ag
- deutsche_bank_ag
- dolomitenbank
- easybank_ag
- erste_bank_und_sparkassen
- hypo_alpeadriabank_international_ag
- hypo_bank_burgenland_aktiengesellschaft
- hypo_noe_lb_fur_niederosterreich_u_wien
- hypo_oberosterreich_salzburg_steiermark
- hypo_tirol_bank_ag
- hypo_vorarlberg_bank_ag
- marchfelder_bank
- oberbank_ag
- raiffeisen_bankengruppe_osterreich
- schoellerbank_ag
- sparda_bank_wien
- volksbank_gruppe
- volkskreditbank_ag
- vr_bank_braunau
maxLength: 5000
type: string
title: param
type: object
fpx:
properties:
bank:
enum:
- affin_bank
- agrobank
- alliance_bank
- ambank
- bank_islam
- bank_muamalat
- bank_of_china
- bank_rakyat
- bsn
- cimb
- deutsche_bank
- hong_leong_bank
- hsbc
- kfh
- maybank2e
- maybank2u
- ocbc
- pb_enterprise
- public_bank
- rhb
- standard_chartered
- uob
maxLength: 5000
type: string
x-stripeBypassValidation: true
required:
- bank
title: param
type: object
giropay:
properties: {}
title: param
type: object
grabpay:
properties: {}
title: param
type: object
ideal:
properties:
bank:
enum:
- abn_amro
- asn_bank
- bunq
- handelsbanken
- ing
- knab
- moneyou
- n26
- rabobank
- regiobank
- revolut
- sns_bank
- triodos_bank
- van_lanschot
- yoursafe
maxLength: 5000
type: string
title: param
type: object
interac_present:
properties: {}
title: param
type: object
klarna:
properties:
dob:
properties:
day:
type: integer
month:
type: integer
year:
type: integer
required:
- day
- month
- year
title: date_of_birth
type: object
title: param
type: object
konbini:
properties: {}
title: param
type: object
link:
properties: {}
title: param
type: object
metadata:
additionalProperties:
type: string
type: object
oxxo:
properties: {}
title: param
type: object
p24:
properties:
bank:
enum:
- alior_bank
- bank_millennium
- bank_nowy_bfg_sa
- bank_pekao_sa
- banki_spbdzielcze
- blik
- bnp_paribas
- boz
- citi_handlowy
- credit_agricole
- envelobank
- etransfer_pocztowy24
- getin_bank
- ideabank
- ing
- inteligo
- mbank_mtransfer
- nest_przelew
- noble_pay
- pbac_z_ipko
- plus_b
# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/stripe/refs/heads/main/openapi/stripe-confirm-api-openapi.yml