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

# Update Lifecycle

> The stages of an Update request and how to track them.

## Update Lifecycle

### Status Transitions

```
Created -> Processing -> Completed -> Failed
```

| Status       | Description                                                                      | What to do                                                                                      |
| ------------ | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `pending`    | Request submitted, queued for processing.                                        | Wait for webhook or poll.                                                                       |
| `processing` | Method is actively retrieving data from the source.                              | Wait. Direct Updates typically complete within seconds to minutes depending on the institution. |
| `completed`  | Data is available. The liability-type object (e.g., `credit_card`) is populated. | Read the data, update your local store, display to user.                                        |
| `failed`     | Retrieval was unsuccessful. The `error` object is populated with details.        | See [Handling Failures](/guides/updates/failures).                                              |

### Timing Expectations

* **Snapshot Updates:** Return synchronously in the POST response. No lifecycle to track. The response is immediately `completed` (or `failed`).
* **Direct Updates:** Asynchronous. Typical completion time varies by institution. Most complete within seconds, some may take up to a few minutes. Design your UI to show a loading state and handle the webhook.

### Webhook Events

| Event           | When it fires                                                                                 |
| --------------- | --------------------------------------------------------------------------------------------- |
| `update.create` | An Update has been created (status: `pending`).                                               |
| `update.update` | An Update's status has changed (typically `pending` to `completed` or `pending` to `failed`). |

Subscribe to `update.update` to react when data is ready. The webhook payload includes the path to retrieve the full Update object.

### Idempotency

If you need to retry a failed Update, use [idempotency keys](/reference/idempotency) to avoid creating duplicate requests.
