> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.shipbob.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.shipbob.com/_mcp/server.

# Return Statuses & Lifecycle Reference

> Learn each return status, label state, and customer email trigger in ShipBob Returns

Every return in ShipBob Returns moves through a defined lifecycle. This reference explains each status, how the dashboard stays synchronized with ShipBob, and what your customer sees at each stage.

## The Standard Lifecycle

A typical return moves through these stages:

**Pending Approval** (optional) → **Awaiting Arrival** → **In Transit** → **Arrived** → **Completed**

If **Auto-approve return labels** is on and no flow holds the return, new returns skip **Pending Approval** and go straight to **Awaiting Arrival** once the label is created.

## Status Reference

| Status               | What it means                                                                                                                                  | Requires your action?                                        |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| **Pending Approval** | The customer submitted a return and it is waiting for your review — either because auto-approve is off or a **Require Approval** flow held it. | Yes — approve or reject it.                                  |
| **Awaiting Arrival** | The return is approved and the label has been created and emailed. The carrier has not scanned the package yet.                                | No.                                                          |
| **In Transit**       | The carrier scanned the package; it is on its way back to the fulfillment center.                                                              | No.                                                          |
| **Arrived**          | The package was delivered to the fulfillment center but processing is not finished.                                                            | Sometimes — your warehouse receives and inspects it.         |
| **Action Required**  | The warehouse flagged an issue during processing — for example, an item they could not identify, or an inspection that needs your decision.    | Yes — resolve the flagged issue from the return detail page. |
| **Completed**        | The return is fully processed and closed in ShipBob.                                                                                           | Only if you settle refunds manually.                         |
| **Rejected**         | You (or an **Auto-Reject** flow) declined the return. No label was sent.                                                                       | No.                                                          |
| **Cancelled**        | The return was cancelled — by you from the dashboard, or because the RMA was cancelled or voided in ShipBob.                                   | No.                                                          |

### Label status

Alongside the return status, each return has a label state you may see referenced in the dashboard:

| Label state              | Meaning                                                                                                                                   |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
| **Pending / Processing** | The label is being created in the background. This normally takes a moment after approval.                                                |
| **Ready**                | The RMA and label were created successfully and the label was emailed to the customer.                                                    |
| **Failed**               | Label creation failed after retries. The return shows under **Action Required > Label Failure** with a **Retry label generation** button. |
| **Not required**         | No shipment is needed — for example, a **Keep Item** flow let the customer keep the product.                                              |

### Refund status

Each return also tracks its refund state independently of its lifecycle status: **Pending Refund**, **Partially Refunded**, or **Refunded**. A return can be **Completed** and still **Pending Refund** if you settle refunds manually. See [Refunds, Fees & Deductions](/labs/returns/refunds).

Operational status and refund status are intentionally separate so warehouse progress does not block finance workflows.

## How Statuses Stay in Sync with ShipBob

You do not need to update statuses by hand. ShipBob Returns keeps them current in three ways:

1. **ShipBob webhooks** — when the RMA changes in ShipBob (arrived, closed, cancelled, and so on), ShipBob pushes the update and the dashboard reflects it in near real time.
2. **Periodic reconciliation** — every 10 minutes, ShipBob Returns re-checks open returns against ShipBob directly, so nothing is missed even if a webhook is delayed. After a return completes, reconciliation also backfills how each item was dispositioned at the warehouse (restocked, quarantined, and so on) for up to 14 days.
3. **Carrier tracking** — return shipments are tracked hourly, which is how a return flips from **Awaiting Arrival** to **In Transit** as soon as the carrier scans the package.

## Which Emails Your Customers Receive

ShipBob Returns emails the customer automatically at key stages. You can customize each template under **Settings** — see the email customization steps in [Setup ShipBob Returns](/labs/returns/setup).

| Email            | When it is sent                                                                                                  |
| ---------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Confirmation** | Immediately after the customer submits the return in the portal.                                                 |
| **Label ready**  | When the RMA and shipping label are created — right away if auto-approve is on, or after you approve the return. |
| **In transit**   | The first time the carrier scans the return package.                                                             |
| **Completed**    | When the return reaches **Completed**.                                                                           |

Rejected returns also notify the customer, including the rejection reason when one is provided.

## FAQ

#### Why can a return be Completed but still show Pending Refund?

Return lifecycle and refund lifecycle are separate. A return can close operationally while refund settlement is still pending if you do refunds manually.

#### How quickly do status updates appear from ShipBob?

Updates are near real time through webhooks, with periodic reconciliation every 10 minutes for open returns and hourly carrier tracking checks.

#### What is the difference between Rejected and Cancelled?

**Rejected** means the return was declined during review. **Cancelled** means a previously created return was later voided, either manually or through ShipBob cancellation events.

## Related Guides

* [Managing Returns Day-to-Day](/labs/returns/manage)
* [What Your Customers See: Portal Walkthrough](/labs/returns/customer-portal)
* [Configure Return Policies](/labs/returns/policy)