# Returns management

<figure><img src="/files/nXsonvG4fJAWyh9sPxFz" alt=""><figcaption></figcaption></figure>

{% hint style="info" icon="lightbulb" %}
Returns can only be created from fulfilled orders, follow a lifecycle from draft to refunded, and can trigger a partial or full refund without cancelling the original order.
{% endhint %}

## Return management system

Commerce Layer provides a return management system that allows you to manage returns across different statuses in one place. You can handle orders returned for any reason — faulty line items, long delivery times, and so on.

[Returns](/core-api-reference/returns.md) can only be created from fulfilled orders. Multiple returns can be created from a single order. When a return request is submitted, it is either approved or not. SKUs that are successfully returned can be restocked to the inventory.

## Return fulfillment

Returns are initially created in *draft* status. They become *requested* when a customer requests to return SKUs from a specific order. Requested returns can be *approved* or *cancelled*. An approved return becomes *shipped* once it leaves the origin address (customer address). Once shipped returns reach the specified return location (destination address), their status becomes either *received* (if the return process completed successfully) or *rejected* (e.g. the customer sent back the wrong items). Received returns can be refunded, in which case their status becomes *refunded*. Successfully returned SKUs can be restocked to an inventory location.

## Refund from a return

Once returned items arrive at the destination address, a refund process can be initiated [from the return itself](/core-api-reference/returns.md#refunding-from-a-return).

<figure><img src="/files/1rEoavDxlxKI5wJ35KUu" alt=""><figcaption></figcaption></figure>

The amount to be refunded must be specified manually — the API computes an estimate based on the price and quantity of the returned items, exposed in a return attribute. By default, the refund is applied to the most recent successful capture associated with the order. If there are multiple captures, you can specify a different one. Starting a refund from a return does not cancel the associated order.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.commercelayer.io/data-model/orders/returns-management.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
