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.

  • payment_intent
    Type: string
    required

    The identifier of the PaymentIntent to refund.

  • amount
    Type: integer · Format: int64

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

  • reason
    Type: string
    max length:  
    100
    enum

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

    values
    • duplicate
    • fraudulent
    • 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-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"
}