Create a Refund
Creates a refund for a previously created payment. You must provide the payment_intent to refund.
By default, the refund returns funds to the original payment method. You can refund the full amount or provide a smaller amount for a partial refund.
You can create multiple partial refunds until the payment has been fully refunded. After the full amount has been refunded, additional refund attempts fail.
Refunds are visible on the related payment in the Merchant Dashboard.
Related guides: Payment records and Dashboard Tour - Payments
Request parameters for creating a new refund.
- Type: stringpayment
_intent requiredThe identifier of the PaymentIntent to refund.
- Type: integer · Format: int64amount
Integer amount in minor units (e.g. cents) specific to the currency. Example: 100 for €1.00
- Type: stringreasonmax length:100enum
String indicating the reason for the refund. If set, possible values are
duplicate,fraudulent, andrequested_by_customer.values- duplicate
- fraudulent
- requested
_by _customer
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://api.paypercut.io/v1/refunds \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"payment_intent": "01K755J9SV2364REVHB915Z2FW",
"amount": 100,
"reason": "duplicate"
}'
{
"id": "01K755J9SV2364REVHB915Z2FW",
"created": "2026-07-08T08:02:27.743Z",
"updated": "2026-07-08T08:02:27.743Z",
"currency": {
"iso": "usd",
"scale": 2
},
"payment": "01K755J9SV2364REVHB915Z2FW",
"payment_intent": "01K755J9SY55CS04SQ3JX1NX36",
"status": null,
"amount": 100,
"destination_details": {
"type": "string",
"card": {
"reference": "string",
"reference_status": "string",
"reference_type": "string",
"type": "pending"
}
},
"failure_reason": "string",
"pending_reason": "charge_pending",
"reason": "duplicate"
}
