Confirm a Payment Intent

Confirms that the customer intends to pay with the payment method already attached to the Payment Intent, or with a payment method provided in this request.

Use this endpoint when you create the Payment Intent before collecting or attaching the customer's payment method. If the payment method is single-use and the Payment Intent has a customer, Paypercut can attach the payment method to that customer during confirmation. If setup_future_usage is provided on this request, it takes precedence over the value stored on the Payment Intent.

If the selected payment method requires customer authentication, the Payment Intent returns status=requires_action and includes the next step in next_action. After the customer completes the action, no additional server-side confirmation is required.

With capture_method=automatic, a successful confirmation captures the payment and returns status=succeeded. With capture_method=manual, a successful confirmation authorizes the payment and returns status=requires_capture; capture the authorized amount with the Capture Payment Intent endpoint.

Related guide: Payment Intents

Path Parameters
  • id
    Type: string
    max length:  
    200
    required
Query Parameters
  • expand
    Type: array string[]
Body·
required
application/json
  • payment_method
    Type: string ·

    Payment method to use for this confirmation. If omitted, Paypercut uses the payment method already attached to the Payment Intent. The payment method must either belong to the same customer or be a single-use payment method that can be assigned during confirmation.

  • payment_method_data
    Type: object ·
  • payment_method_options
    Type: object ·

    Payment method-specific configuration for this PaymentIntent.

  • setup_future_usage
    Type: string | null · enum

    Indicates that you intend to make future payments with the Payment Intent's payment method. Use on_session when future payments will be made while the customer is present in your checkout flow. Use off_session when future payments may happen while the customer is not present, such as subscriptions or saved-card charges. If the Payment Intent has a customer, Paypercut can attach and promote a single-use payment method to that customer after the Payment Intent is confirmed and the customer completes any required authentication. When this value is provided during confirmation, it takes precedence over the value stored on the Payment Intent.

    values
    • off_session
    • on_session
Responses
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/v1/payment_intents/{id}/confirm
curl 'https://api.paypercut.io/v1/payment_intents/{id}/confirm' \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "payment_method": "01K688H80Z3199KETHDJ4ZAFPS",
  "payment_method_data": {
    "type": "card",
    "card": {
      "cardholder_name": null,
      "brand": "",
      "country": null,
      "issuer": null,
      "display_brand": null,
      "exp_month": 1,
      "exp_year": 1,
      "fingerprint": null,
      "funding": "",
      "segment": "",
      "iin": "",
      "last4": "",
      "wallet": {
        "dynamic_last4": null,
        "type": "apple_pay"
      },
      "three_d_secure_usage": {
        "supported": true
      },
      "token_id": "",
      "token_intent_id": ""
    },
    "billing_details": {
      "email": null,
      "name": null,
      "phone": null,
      "address": {
        "city": null,
        "country": null,
        "line1": null,
        "line2": null,
        "postal_code": null,
        "state": null
      }
    }
  },
  "payment_method_options": {
    "type": "card",
    "card": {
      "three_d_secure": {
        "session_id": "",
        "ares_trans_status": "A",
        "cryptogram": "",
        "electronic_commerce_indicator": "01",
        "exemption_indicator": "low_risk",
        "requestor_challenge_indicator": "",
        "transaction_id": "",
        "version": "1.0.2"
      },
      "request_three_d_secure": "any"
    }
  },
  "setup_future_usage": "off_session"
}'
{
  "amount": 100,
  "payment_method": "01K688H80Z3199KETHDJ4ZAFPS",
  "customer": {
    "created": "2026-07-08T08:02:27.791Z",
    "livemode": true,
    "email": null,
    "name": null,
    "phone": null,
    "preferred_locales": [
      "string"
    ],
    "address": {
      "city": null,
      "country": null,
      "line1": null,
      "line2": null,
      "postal_code": null,
      "state": null
    },
    "invoice_settings": {
      "default_payment_method": "01K688H80Z3199KETHDJ4ZAFPS"
    },
    "id": "string"
  },
  "capture_method": "automatic",
  "on_behalf_of": "string",
  "statement_descriptor": null,
  "setup_future_usage": "off_session",
  "id": "21210021c2855007efa2d657018",
  "created": "2026-07-08T08:02:27.791Z",
  "currency": {
    "iso": "usd",
    "scale": 2
  },
  "status": "canceled",
  "metadata": {
    "additionalProperty": "string"
  },
  "amount_capturable": 100,
  "amount_received": 100,
  "updated": "2026-07-08T08:02:27.791Z",
  "livemode": true,
  "next_action": {
    "redirect_to_url": {
      "return_url": null,
      "url": null
    },
    "type": "string",
    "three_d_secure": {
      "flow": "frictionless",
      "status_url": "https://api.yourco.com/v1/payment_intents/pi_123",
      "return_url": null,
      "message": {
        "allowed_origins": [
          "https://merchant.example.com"
        ]
      },
      "hint": {
        "scheme": "visa",
        "version": "2.2.0"
      },
      "idempotency_key": "string"
    }
  },
  "latest_payment": "01K755J9SV2364REVHB915Z2FW",
  "cancellation_reason": "abandoned",
  "canceled_at": null
}