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

Body·

required
application/json

Request parameters for creating a new refund.

  • The identifier of the PaymentIntent to refund.

  • Integer amount in minor units (e.g. cents) specific to the currency. Example: 100 for €1.00

  • String indicating the reason for the refund. If set, possible values are duplicate, fraudulent, and requested_by_customer.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/v1/refunds
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-10-02T06:37:26.636Z",
  "updated": "2026-10-02T06:37:26.636Z",
  "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"
}