---
title: "POST /api/v1/admin/payments/{paymentId}/refund"
method: POST
path: "/api/v1/admin/payments/{paymentId}/refund"
tags: ["Administration", "Billing"]
---

# POST /api/v1/admin/payments/{paymentId}/refund

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

Requests the single full refund identified by paymentId. A completed refund is replayed without calling the gateway. Refunds do not affect Memberships unless cancelMembership is true, which ends the associated Membership immediately through the shared cancellation flow and removes premium access while retaining dashboard access.

## Path parameters

- `paymentId` integer, required

## Cookies

- `billing_session` string

## Request body

- object
  - `cancelMembership` boolean

## Response `200`

The refund succeeded or an existing successful refund was replayed.

- object
  - `adjustmentId` integer, required
  - `status` 'succeeded', required

## Other responses

- `400` — The path, body, query, or session cookie is invalid.
- `401` — No valid global administrator session exists.
- `403` — The request did not originate from this host.
- `409` — The payment is not refundable or its refund is already in progress.
- `502` — The gateway or refund finalization failed.
- `503` — Refund processing is temporarily unavailable.

---

[API](https://skmtc.dev/expertschat/apis/billing-core-api.md) · [All operations](https://skmtc.dev/expertschat/apis/billing-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/expertschat/billing-core-api/revisions/c6d0e986ce32/schema)
