Create a Payment Intent
Creates a Payment Intent to track and confirm a customer payment from your server.
Use a Payment Intent when you are building a custom payment flow instead of hosted Checkout. The object records the amount, currency, customer, payment method, capture mode, and lifecycle status for the payment attempt.
By default, this endpoint creates the Payment Intent without confirming it. Set confirm=true to confirm it in the same request. When capture_method=manual is used with confirmation, Paypercut authorizes the payment and returns status=requires_capture; capture the authorized amount later with the Capture Payment Intent endpoint.
A Payment Intent can use a payment method that already belongs to the same customer, or a single-use payment method created by Elements or Express Checkout. If you set setup_future_usage, Paypercut prepares the payment method for future reuse after the customer completes any required authentication.
For hosted or embedded checkout, create a Checkout Session instead.
You can also search and review resulting payments in the Merchant Dashboard.
Related guides: Checkout Experience and Payment Intents
- Type: array string[]expand
- Type: integer · Format: int64amountrequired
Integer amount in minor units (e.g. cents) specific to the currency. Example: 100 for €1.00
- Type: string ·currencyrequired
ISO 4217 currency codes (alpha3) supported for payments
- Type: string ·payment
_method Payment method to attach to this Payment Intent. The payment method must either belong to the same customer or be a single-use payment method created by an Elements or Express Checkout tokenization flow. If the Payment Intent is created without confirmation, the provided payment method is returned on the Payment Intent and can be used when confirming later.
- Type: object ·payment
_method _data - Type: object ·payment
_method _options Payment method-specific configuration for this PaymentIntent.
- Type: string ·customermax length:100
- Type: string enumcapture
_method Controls when funds are captured. Use
automaticto capture after a successful authorization. Usemanualto authorize during confirmation and capture later with the Capture Payment Intent endpoint.values- automatic
Paypercut automatically captures funds when the customer authorizes the payment.
- manual
Place a hold on the funds when the customer authorizes the payment, but don't capture the funds until later.
- Type: booleanconfirm
Set to
trueto attempt to confirm this PaymentIntent immediately. This parameter defaults tofalse. When creating and confirming a PaymentIntent at the same time, you can also provide the parameters available in the Confirm API. - off
_session Indicates that the customer is not actively in your checkout flow during this payment attempt. Use
trueorone_offfor customer-not-present unscheduled reuse, andrecurringfor scheduled recurring reuse of an eligible saved payment method. This parameter can only be used withconfirm=true.- Type: boolean
Indicates that the customer is not actively in your checkout flow during this payment attempt. Use
trueorone_offfor customer-not-present unscheduled reuse, andrecurringfor scheduled recurring reuse of an eligible saved payment method. This parameter can only be used withconfirm=true.
- Type: string | null · enumsetup
_future _usage Indicates that you intend to make future payments with the Payment Intent's payment method. Use
on_sessionwhen future payments will be made while the customer is present in your checkout flow. Useoff_sessionwhen 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
- metadata
Metadata to attach to the Payment Intent. When the first Payment is created from this Payment Intent, this metadata is copied onto the Payment as its initial metadata snapshot.
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.- propertyType: string
Name
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://api.paypercut.io/v1/payment_intents \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"amount": 100,
"currency": "EUR",
"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"
}
},
"customer": "01K755J9SV2364REVHB915Z2FW",
"capture_method": "automatic",
"confirm": true,
"off_session": true,
"setup_future_usage": "off_session",
"metadata": {
"additionalProperty": ""
}
}'
{
"amount": 100,
"payment_method": "01K688H80Z3199KETHDJ4ZAFPS",
"customer": {
"created": "2026-07-03T10:37:04.295Z",
"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-03T10:37:04.295Z",
"currency": {
"iso": "usd",
"scale": 2
},
"status": "canceled",
"metadata": {
"additionalProperty": "string"
},
"amount_capturable": 100,
"amount_received": 100,
"updated": "2026-07-03T10:37:04.295Z",
"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
}
