Capture a PaymentIntent 

Core Resources
Payment Intents
Capture a PaymentIntent

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.

Parameters

  • amount_to_captureinteger

    The amount to capture from the PaymentIntent, which must be less than or equal to the original amount. Defaults to the full amount_capturable if it’s not provided.

  • metadataobject

    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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

More parameters

  • amount_detailsobjectPreview feature

    Provides industry-specific information about the amount.

    • amount_details.discount_amountinteger

      The total discount applied on the transaction.

    • amount_details.line_itemsarray of objects

      A list of line items, each containing information about a product in the PaymentIntent. There is a maximum of 100 line items.

      • amount_details.line_items.product_namestringRequired

        Name of the product. At most 100 characters long.

      • amount_details.line_items.quantityintegerRequired

        Number of items of the product. Positive integer.

      • amount_details.line_items.unit_costintegerRequired

        Cost of the product. Non-negative integer.

      • amount_details.line_items.discount_amountinteger

        The amount an item was discounted for. Positive integer.

      • amount_details.line_items.payment_method_optionsobject

        Payment method-specific information for line items.

        • amount_details.line_items.payment_method_options.cardobject

          This sub-hash contains line item details that are specific to card payment method."

          • amount_details.line_items.payment_method_options.card.commodity_codestring

            Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc.

        • amount_details.line_items.payment_method_options.card_presentobject

          This sub-hash contains line item details that are specific to card_present payment method."

          • amount_details.line_items.payment_method_options.card_present.commodity_codestring

            Identifier that categorizes the items being purchased using a standardized commodity scheme such as (but not limited to) UNSPSC, NAICS, NAPCS, etc.

        • amount_details.line_items.payment_method_options.klarnaobjectPreview feature

          This sub-hash contains line item details that are specific to klarna payment method."

          • amount_details.line_items.payment_method_options.klarna.image_urlstring

            URL to an image for the product. Max length, 4096 characters.

          • amount_details.line_items.payment_method_options.klarna.product_urlstring

            URL to the product page. Max length, 4096 characters.

          • amount_details.line_items.payment_method_options.klarna.subscription_referencestring

            Reference for the subscription this line item is for.

        • amount_details.line_items.payment_method_options.paypalobject

          This sub-hash contains line item details that are specific to paypal payment method."

          • amount_details.line_items.payment_method_options.paypal.categoryenum

            Type of the line item.

            Possible enum values
            digital_goods

            Goods that are stored, delivered, and used in their electronic format.

            donation

            A contribution or gift for which no good or service is exchanged, usually to a not for profit organization.

            physical_goods

            A tangible item that can be shipped with proof of delivery.

          • amount_details.line_items.payment_method_options.paypal.descriptionstring

            Description of the line item.

          • amount_details.line_items.payment_method_options.paypal.sold_bystring

            The Stripe account ID of the connected account that sells the item.

      • amount_details.line_items.product_codestring

        Unique identifier of the product. At most 12 characters long.

      • amount_details.line_items.taxobject

        Contains information about the tax on the item.

        • amount_details.line_items.tax.total_tax_amountintegerRequired

          The total tax on an item. Non-negative integer.

      • amount_details.line_items.unit_of_measurestring

        A unit of measure for the line item, such as gallons, feet, meters, etc.

    • amount_details.shippingobject

      Contains information about the shipping portion of the amount.

      • amount_details.shipping.amountinteger

        Portion of the amount that is for shipping.

      • amount_details.shipping.from_postal_codestring

        The postal code that represents the shipping source.

      • amount_details.shipping.to_postal_codestring

        The postal code that represents the shipping destination.

    • amount_details.taxobject

      Contains information about the tax portion of the amount.

      • amount_details.tax.total_tax_amountintegerRequired

        Total portion of the amount that is for tax.

  • application_fee_amountintegerConnect only

    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 amount captured. For more information, see the PaymentIntents use case for connected accounts.

  • final_captureboolean

    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 is available for PaymentIntents.

  • hooksobjectPreview feature

    Automations to be run during the PaymentIntent lifecycle

    • hooks.inputsobject

      Arguments passed in automations

      • hooks.inputs.taxobject

        Tax arguments for automations

  • payment_detailsobjectPreview feature

    Provides industry-specific information about the charge.

    • payment_details.customer_referencestringPreview feature

      Some customers might be required by their company or organization to provide this information. If so, provide this value. Otherwise you can ignore this field.

    • payment_details.order_referencestringPreview feature

      A unique value assigned by the business to identify the transaction.

  • statement_descriptorstring

    Text that appears on the customer’s statement as the statement descriptor for a non-card charge. This value overrides the account’s default statement descriptor. For information about requirements, including the 22-character limit, see the Statement Descriptor docs.

    Setting this value for a card charge returns an error. For card charges, set the statement_descriptor_suffix instead.

  • statement_descriptor_suffixstring

    Provides information about a card charge. Concatenated to the account’s statement descriptor prefix to form the complete statement descriptor that appears on the customer’s statement.

  • transfer_dataobjectConnect only

    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.

    • transfer_data.amountinteger

      The amount that will be transferred automatically when a charge succeeds.

Returns

Returns a PaymentIntent object with status="succeeded" if the PaymentIntent is capturable. Returns an error if the PaymentIntent isn’t capturable or if an invalid amount to capture is provided.

POST /v1/payment_intents/:id/capture
curl -X POST https://api.stripe.com/v1/payment_intents/pi_3MrPBM2eZvKYlo2C1TEMacFD/capture \
-u "sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-H "Stripe-Version: 2025-09-30.preview"
Response
{
"id": "pi_3MrPBM2eZvKYlo2C1TEMacFD",
"object": "payment_intent",
"amount": 1000,
"amount_capturable": 0,
"amount_details": {
"tip": {}
},
"amount_received": 1000,
"application": null,
"application_fee_amount": null,
"automatic_payment_methods": null,
"canceled_at": null,
"cancellation_reason": null,
"capture_method": "automatic",
"client_secret": "pi_3MrPBM2eZvKYlo2C1TEMacFD_secret_9J35eTzWlxVmfbbQhmkNbewuL",
"confirmation_method": "automatic",
"created": 1524505326,
"currency": "usd",
"customer": null,
"description": "One blue fish",
"last_payment_error": null,
"latest_charge": "ch_1EXUPv2eZvKYlo2CStIqOmbY",
"livemode": false,
"metadata": {},
"next_action": null,
"on_behalf_of": null,
"payment_method": "pm_1EXUPv2eZvKYlo2CUkqZASBe",
"payment_method_options": {},
"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": "succeeded",
"transfer_data": null,
"transfer_group": null
}