> ## 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.

# Journeys

> Which webhook events fire for each Life Cycle

Event order for each resource. Status meanings are on the [Life Cycles](/quickstart/life-cycle) pages.

## Inbound shipments

[Inbound shipments](/quickstart/life-cycle/inbound-shipments)

| Step                    | Event                                                | `toStatus` or `status`   |
| ----------------------- | ---------------------------------------------------- | ------------------------ |
| Create without tracking | `inbound_shipment.status_changed`                    | `created`                |
| Create with tracking    | `inbound_shipment.status_changed`                    | `in_transit`             |
| At the vault            | `inbound_shipment.status_changed`                    | `processing`             |
| Check finished          | `inbound_shipment.status_changed`                    | `accepted` or `rejected` |
| Item available          | `inventory.vaulted`, then `inventory.status_changed` | `in_vault`               |

`inventory.vaulted` is sent after `accepted`, together with `inventory.status_changed` to `in_vault`. Treat those two as one moment. A `rejected` or `cancelled` shipment does not send inventory events.

## Transfers

[Transfers](/quickstart/life-cycle/transfers)

| Step                        | Event                                              | `toStatus`               |
| --------------------------- | -------------------------------------------------- | ------------------------ |
| Create                      | `transfer.status_changed`                          | `pending_review`         |
| Create with `approve: true` | `transfer.status_changed`                          | `approved`               |
| Review                      | `transfer.status_changed`                          | `approved` or `rejected` |
| Item moving                 | `inventory.status_changed`                         | `pending_transfer`       |
| Done                        | `transfer.status_changed` and `transfer.completed` | `completed`              |

Review is vault staff. `pending_transfer` can be skipped. `transfer.completed` and `transfer.status_changed` to `completed` are the same moment. That is when `fboAccountId` is the destination account.

## Outbound requests

[Outbound requests](/quickstart/life-cycle/outbound-requests)

| Step           | Event                                                            | `toStatus`                    |
| -------------- | ---------------------------------------------------------------- | ----------------------------- |
| Create         | `outbound_request.status_changed`                                | `pending_review`              |
| Review         | `outbound_request.status_changed`                                | `processing` or `rejected`    |
| Left the vault | `outbound_request.status_changed` and `inventory.status_changed` | `fulfilled` and `shipped_out` |

The request stays `processing` until `fulfilled`. There is no `approved` request event.

## Outbound shipments

[Outbound shipments](/quickstart/life-cycle/outbound-shipments)

| Step                       | Event                              | `toStatus`  |
| -------------------------- | ---------------------------------- | ----------- |
| Handed to the carrier      | `outbound_shipment.status_changed` | `shipped`   |
| Carrier confirmed delivery | `outbound_shipment.status_changed` | `delivered` |

`delivered` includes `deliveredAt`. The shipment is `processing` on list and get before the `shipped` event. `processing` does not send `outbound_shipment.status_changed`. After `delivered`, inventory stays `shipped_out`.
