> For the complete documentation index, see [llms.txt](https://developer.esw.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.esw.com/returns-api/grp-returns-api/core-concepts/decision-tables.md).

# Decision Tables

### `ReturnMethod`

It directly affects the shopper journey and the route/carrier choices. The enum values are `Postal`, `PUDO`, and `Collections`.

| Value         | Use this when                                               | Do not use this when                                                | Meaning                 |
| ------------- | ----------------------------------------------------------- | ------------------------------------------------------------------- | ----------------------- |
| `Postal`      | The shopper returns through a mail / parcel-post style flow | The shopper must use a pickup/drop-off point or arranged collection | Postal return flow      |
| `PUDO`        | The shopper uses a pickup/drop-off location                 | The route is a home collection or standard post-back flow           | Drop-off network return |
| `Collections` | The return is collected from the shopper                    | The shopper must self-drop or self-post the parcel                  | Collected return        |

### `PaidBy`

It changes the commercial meaning of the return flow. The enum values are `Unpaid`, `Retailer`, and `Shopper`.

| Value      | Use this when                                | Do not use this when                                     | Meaning                                        |
| ---------- | -------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------- |
| `Unpaid`   | No prepaid return cost is being assigned yet | The retailer or shopper has clearly taken responsibility | Cost responsibility not assigned / not prepaid |
| `Retailer` | The retailer funds the return method         | The shopper is expected to pay                           | Retailer-paid return                           |
| `Shopper`  | The shopper pays for the return              | The retailer has prepaid or subsidized the route         | Shopper-paid return                            |

### &#x20;`ReturnType`

One of the most important business-state matrices in the API. The enum values are `Normal`, `Undeliverable`, `BlindReturn`, and `EUCoolingOff`.

| Value           | Use this when                                                                    | Do not use this when                                                    | Meaning                         |
| --------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------- |
| `Normal`        | It is a standard shopper return                                                  | The parcel never reached the shopper, or a special policy route applies | Standard return                 |
| `Undeliverable` | The return is tied to an undeliverable/outbound failure scenario                 | The shopper is returning a normally delivered item                      | Undeliverable-order return flow |
| `BlindReturn`   | The return arrives or is processed without the normal prior return-order journey | The shopper has gone through the standard guided flow                   | Unannounced / blind return      |
| `EUCoolingOff`  | The return is specifically under cooling-off / withdrawal rights                 | The return is a routine dissatisfaction or damage return                | Cooling-off rights return       |

### &#x20;`ReturnOrderStatus`

The enum includes `Created`, `Received`, `OnHold`, `Released`, `Processed`, `AddedToManifest`, `SentToRetailer`, `ReceivedByRetailer`, `RemovedFromManifest`, `Cancelled`, and `Refunded`.

| Status                | Use this to mean                                          | Do not interpret it as                 |
| --------------------- | --------------------------------------------------------- | -------------------------------------- |
| `Created`             | Return order exists but has not progressed materially yet | Physically received or completed       |
| `Received`            | Return has been physically received into the return flow  | Refunded or fully processed            |
| `OnHold`              | Processing is paused pending review or exception handling | Final completion                       |
| `Released`            | A held return has been released back into flow            | Already processed to completion        |
| `Processed`           | Operational return processing is complete                 | Necessarily refunded                   |
| `AddedToManifest`     | Included in manifest movement                             | Final retailer receipt                 |
| `SentToRetailer`      | Return has been sent onward to retailer                   | Already received by retailer           |
| `ReceivedByRetailer`  | Retailer has received the return                          | Still in transit                       |
| `RemovedFromManifest` | Removed from manifest workflow                            | Successfully completed onward movement |
| `Cancelled`           | Return order is cancelled                                 | Rejected item only                     |
| `Refunded`            | Refund outcome has been completed                         | Mere receipt or processing only        |

### &#x20;`ReturnItemStatus` and `UpdateReturnItemStatus`

&#x20;`ReturnItemStatus` includes `InProgress`, `Accepted`, `Rejected`, `RejectedNotReturned`, and `Cancelled`, while the update surface only allows `Accepted` or `Rejected`.

| Value                 | Best use                                              | Scope                         |
| --------------------- | ----------------------------------------------------- | ----------------------------- |
| `InProgress`          | Item is still being worked through returns processing | Read/status model             |
| `Accepted`            | Item accepted into return outcome                     | Read model and update request |
| `Rejected`            | Item rejected after review                            | Read model and update request |
| `RejectedNotReturned` | Item was rejected in a not-returned scenario          | Read/status model only        |
| `Cancelled`           | Item return line was cancelled                        | Read/status model only        |

### &#x20;`ReturnDocumentType`, `ReturnDocumentStatus`, and `RegenerateReason`

&#x20;`ReturnDocumentType` is `ReturnLabel` or `LastMileLabel`; `ReturnDocumentStatus` is `Processing`, `Ready`, or `Failed`; and `RegenerateReason` is `LabelFailed`, `LabelExpired`, or `Unknown`.

#### **Document type**

| Value           | Use this when                               | Meaning               |
| --------------- | ------------------------------------------- | --------------------- |
| `ReturnLabel`   | You need the standard return label document | Standard return label |
| `LastMileLabel` | You need the last-mile label variant        | Last-mile document    |

#### **Document status**

| Value        | Use this to mean                      |
| ------------ | ------------------------------------- |
| `Processing` | Document generation is still underway |
| `Ready`      | Document is available                 |
| `Failed`     | Document generation failed            |

#### **Regenerate reason**

| Value          | Use this when                             |
| -------------- | ----------------------------------------- |
| `LabelFailed`  | The prior label generation failed         |
| `LabelExpired` | The prior label is no longer valid        |
| `Unknown`      | A reason exists but is not yet classified |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://developer.esw.com/returns-api/grp-returns-api/core-concepts/decision-tables.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
