> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automate.ax/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# On delivery returned

> Starts an automation when Uber finishes returning an undeliverable order.

`uber.onDeliveryReturned` takes no filters. It starts when Uber finishes returning an order it could not deliver: status `returned` on the original delivery.

```ts automations/delivery-returned.automation.ts theme={null}
import { automation, sendEmail, t } from "automate.ax"
import { uber } from "automate.ax/uber"

export default automation("Restock a returned order", () => {
  const event = uber.onDeliveryReturned({})
  sendEmail({
    to: "*",
    subject: t`Order ${event.delivery.manifest?.reference} returned`,
    text: t`Reason: ${event.delivery.undeliverableReason}`,
  })
})
```

The event includes `id`, `deliveryId`, `customerId`, `status`, `liveMode`, `created`, and the full `delivery` with its courier, waypoints, ETAs, and fee. Uber tracks the return trip as a separate delivery whose ID starts with `ret_`; `delivery.relatedDeliveries` links the two.

Requires an Uber Direct connection with a webhook signing key and a dashboard webhook that sends `event.delivery_status`. See [Connect Uber Direct](https://docs.automate.ax/reference/integrations/uber/index.md#connect-uber-direct).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.