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

# Events

> Inspect request and fulfillment lifecycle data.

The **Events** page shows every lifecycle step Proceeds emits while handling a paid request. Use it to answer one question: *where did this flow stop?*

## Event types

| Event         | Meaning                                                                                  |
| ------------- | ---------------------------------------------------------------------------------------- |
| `Request`     | The client hit a paywall.                                                                |
| `Payment`     | A payment payload was received and validated.                                            |
| `Fulfillment` | Proceeds proxied the request to the upstream `Target URL` and got a successful response. |
| `Error`       | Something failed at any step.                                                            |

A healthy paid request emits `Request → Payment → Fulfillment`.

## Filters

`All`, `Request`, `Payment`, `Fulfillment`, `Error`.

## How to read the stream

Start at the latest event and walk backwards:

1. Did `Request` fire? If not, the URL never reached Proceeds — check DNS or the client's URL.
2. Did `Payment` fire? If not, the client didn't retry with proof, or the proof was rejected.
3. Did `Fulfillment` fire? If not, the upstream call failed — see [Forward upstream auth](/guides/forward-upstream-auth) and [Custom headers and query parameters](/guides/custom-headers-and-params).

If you see an `Error` event at any step, open it to see the underlying reason.

<CardGroup cols={2}>
  <Card title="Cross-check payment state" icon="receipt" href="/dashboard/transactions">
    Compare event traces against the matching transaction record.
  </Card>

  <Card title="Get notified with webhooks" icon="bell" href="/dashboard/webhooks">
    Push these events to your server instead of inspecting them here.
  </Card>
</CardGroup>
