---
title: "Refund Order"
description: "Use POST /orders/{order_id}/refund to refund an order payment. The current public operation is Order.refund."
canonical: https://docs.ordering.co/api-reference/guides/refund-order/
---

# Refund Order

> **API operation:** [Open the endpoint in Scalar](https://docs.ordering.co/api-reference/#tag/orders/POST/orders/{order_id}/refund)

Use `POST /orders/{order_id}/refund` to refund an order payment. The current public operation is `Order.refund`.

Refunds can be sent to `cash_wallet` or `source`; source routing may return funds to a wallet or a supported payment gateway. With `version=v2`, an administrator or the owning business manager is required. The supported `mode` values are `total`, `amount`, and `items`; `transfer_to` accepts `cash_wallet`, `credit_point_wallet`, or `source`.

Access checks differ between the legacy and v2 flows; do not assume every authenticated role can issue a refund. Refunds require payment events, refundable value, and a customer. The request and error details may vary by payment source and version.

## OpenAPI reference

**Operation:** `POST /orders/{order_id}/refund`

**Path parameters**

| Name       | Type    | Required | Description |
| ---------- | ------- | -------- | ----------- |
| `order_id` | integer | Yes      | —           |

**Header parameters**

| Name                   | Type   | Required | Description |
| ---------------------- | ------ | -------- | ----------- |
| `User-Agent`           | string | No       | —           |
| `X-Forwarded-For`      | string | No       | —           |
| `X-Internal-Product-X` | string | No       | —           |

**Request body fields**

| Name                     | Type    | Required |
| ------------------------ | ------- | -------- |
| `amount`                 | number  | Yes      |
| `description`            | string  | No       |
| `items`                  | any     | No       |
| `mode`                   | string  | No       |
| `order_payment_event_id` | integer | No       |
| `transfer_to`            | string  | Yes      |
| `version`                | string  | No       |

**Responses**

| Code | Description                           |
| ---- | ------------------------------------- |
| 200  | OK (Envelope)                         |
| 400  | Bad Request (ErrorResponse)           |
| 401  | Unauthorized                          |
| 404  | Not Found                             |
| 429  | Too Many Requests (ErrorResponse)     |
| 500  | Internal Server Error (ErrorResponse) |
| 503  | Service Unavailable (ErrorResponse)   |

[Open this operation in the API reference](https://docs.ordering.co/api-reference/#tag/orders/POST/orders/{order_id}/refund)
