openapi: 3.0.0 info: title: Stripe Accounts Account Capture 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: Capture paths: /v1/payment_intents/{intent}/capture: post: description: '
Capture the funds of an existing uncaptured PaymentIntent when its status is requires_capture.
Uncaptured PaymentIntents are cancelled a set number of days (7 by default) after their creation.
Learn more about separate authorization and capture.
' operationId: postPaymentIntentsIntentCapture 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 metadata: explode: true style: deepObject transfer_data: explode: true style: deepObject schema: additionalProperties: false $ref: '#/components/schemas/PostPaymentIntentsIntentCaptureRequest' 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 Capture x-api-evangelist-processing: GenerateOperationSummariesFromPath: true PascalCaseOperationSummaries: true CaselCaseOperationIds: true ChooseTags: true tags: - Capture 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 PostPaymentIntentsIntentCaptureRequest: type: object properties: amount_to_capture: description: The amount to capture from the PaymentIntent, which must be less than or equal to the original amount. Any additional amount is automatically refunded. Defaults to the full `amount_capturable` if it's not provided. type: integer 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). type: integer expand: description: Specifies which fields in the response should be expanded. items: maxLength: 5000 type: string type: array final_capture: description: Defaults to `true`. When capturing a PaymentIntent, setting `final_capture` to `false` notifies Stripe to not release the remaining uncaptured funds to make sure that they're captured in future requests. You can only use this setting when [multicapture](https://stripe.com/docs/payments/multicapture) is available for PaymentIntents. type: boolean metadata: anyOf: - additionalProperties: type: string type: object - enum: - '' 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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. 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: 22 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. The concatenated descriptor must be 1-22 characters long. maxLength: 22 type: string transfer_data: description: 'The parameters that you can use to automatically create a transfer after the payment is captured. Learn more about the [use case for connected accounts](https://stripe.com/docs/payments/connected-accounts).' properties: amount: type: integer title: transfer_data_update_params type: object error: description: An error response from the Stripe API properties: error: $ref: '#/components/schemas/api_errors' required: - error type: object