---
title: "Refund a payment"
method: POST
path: "/v1/payments/{paymentId}/refund"
tags: ["Payments"]
---

# Refund a payment

`POST /v1/payments/{paymentId}/refund`

Issue a full or partial refund for a paid payment. Requires an idempotency key.

## Path parameters

- `paymentId` string, uuid, required

## Headers

- `X-Idempotency-Key` string, required

## Request body

- RefundPaymentRequest
  - `amount` number — Refund amount. Omit for a full refund.
  - `reason` string — Reason for the refund.

## Response `200`

Refund created.

- object
  - `refund` Refund
    - `id` string, uuid
    - `txId` string
    - `amount` number
    - `reason` string
    - `status` 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELLED' | 'REFUNDED' — Generic transaction status.
    - `processedAt` string, date-time
    - `createdAt` string, date-time

## Other responses

- `400` — Validation error.
- `401` — Missing or invalid authentication token.
- `404` — Resource not found.
- `409` — Idempotency conflict. The key was already used with a different payload.

---

[API](https://skmtc.net/yuvexpay/apis/yuvexpay-api.md) · [All operations](https://skmtc.net/yuvexpay/apis/yuvexpay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/yuvexpay/yuvexpay-api/revisions/0d036504e049/schema)
