---
title: "Refund Order"
method: POST
path: "/orders/{id}/refunds"
tags: ["Orders"]
---

# Refund Order

`POST /orders/{id}/refunds`

Creates a refund for an order. This operation is used to refund a previously paid order (fully or partially, depending on the request body). The API will validate the order and its related charges before processing the refund. If the refund cannot be created due to business rules or state, an error response is returned.

## Path parameters

- `id` string, required

## Headers

- `Accept-Language` 'es' | 'en'
- `X-Child-Company-Id` string

## Request body

- OrderRefundRequest
  - `amount` integer, required — Amount to refund. If not provided, the API refunds the refundable amount of the selected charge.
  - `charge_id` string, nullable — Charge ID to refund. If not provided, the API selects a refundable charge from the order.
  - `reason` 'requested_by_client' | 'cannot_be_fulfilled' | 'duplicated_transaction' | 'suspected_fraud' | 'other', required — Refund reason. If not provided, the API uses a default reason.
  - `expires_at` integer, nullable — Expiration timestamp for cash refunds (must be within the allowed range configured by the API).

## Response `200`

successful operation

## Other responses

- `401` — authentication error
- `402` — payment required error
- `404` — not found entity
- `422` — parameter validation error
- `500` — internal server error

---

[API](https://skmtc.dev/digitalfemsa/apis/femsa-api.md) · [All operations](https://skmtc.dev/digitalfemsa/apis/femsa-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/digitalfemsa/femsa-api/revisions/2e43caddf36b/schema)
