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

# Outbound Requests

> Integration sequence for asking inventory to leave the vault

Follow an outbound request on [Outbound Requests](/api-reference/outbound-requests/list). The item stays on [Inventory](/api-reference/inventory/list) until it is `shipped_out`.

## Create

`POST /outbound-requests`. Required fields:

* `fboAccountId`
* `items` — at least one entry, each with `inventoryItemId`

Each item must be `in_vault` on that account. `inventoryItemId` values must be unique. An item already on an open transfer or an open outbound request is rejected.

`destinationAddress` is optional. `shipping` is optional. Omitted `shipping` is `mode: "cheapest"` and `signatureType: "NoSignature"`. Do not send a price. If `destinationAddress` is set, read `shipping.quote` from [Get Outbound Request](/api-reference/outbound-requests/get) after create. If it is omitted, there is no quote, and vault staff set the address before the label is bought. Review does not require the address. There is no `approve: true`. Vault staff review every request. `approvedBySystem` is `false`.

The response `status` is `pending_review`. `outboundShipmentIds` is empty. Webhook: `outbound_request.status_changed` with `toStatus: "pending_review"`.

The item stays `in_vault`. [Get Inventory Item](/api-reference/inventory/get) sets `openOutboundRequestId` to this request.

```json theme={null}
{
  "fboAccountId": "m97fbo456",
  "destinationAddress": {
    "name": "Jane Doe",
    "street1": "123 Main St",
    "city": "Dallas",
    "state": "TX",
    "zip": "75001",
    "country": "US"
  },
  "items": [{ "inventoryItemId": "jk7inv456" }]
}
```

[Cancel Outbound Request](/api-reference/outbound-requests/cancel) is valid only while `status` is `pending_review`.

## Statuses

Request `status` on list, get, and `outbound_request.status_changed`:

| Status           | What to do                                                                                                                 |
| ---------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `pending_review` | Waiting for review. Item is `in_vault` with `openOutboundRequestId`. `outboundShipmentIds` is empty. Cancel is available.  |
| `processing`     | Approved. Stays `processing` until `fulfilled`. The item can be `pending_outbound`. `outboundShipmentIds` can contain ids. |
| `rejected`       | Item stays `in_vault`. `openOutboundRequestId` is cleared. Terminal.                                                       |
| `cancelled`      | Cancelled from `pending_review`. Item stays `in_vault`. `openOutboundRequestId` is cleared.                                |
| `fulfilled`      | Also sends `inventory.status_changed` with `toStatus: "shipped_out"`. Item is `shipped_out`. Terminal.                     |

There is no `approved` request status. `pending_outbound` and `shipped_out` are inventory statuses.
