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

# Event timeline

> The order events arrive in, for successful and failed payments.

For each payment, events arrive one at a time, in this order.

## Successful onramp

```mermaid theme={null}
flowchart TD
  A[payment.onramp.initiated] --> B[payment.onramp.quote_locked]
  B --> C[payment.onramp.fiat_pending]
  C -->|customer pays| D[payment.onramp.fiat_received]
  D --> E[payment.onramp.processing]
  E -->|stablecoin sent| F[payment.onramp.completed]
```

## Successful offramp

```mermaid theme={null}
flowchart TD
  A[payment.offramp.initiated] --> B[payment.offramp.quote_locked]
  B --> C[payment.offramp.stables_pending]
  C -->|customer sends crypto| D[payment.offramp.stables_received]
  D --> E[payment.offramp.processing]
  E -->|fiat paid| F[payment.offramp.completed]
```

## When things go wrong

> [tab] Customer never pays
>
> ```text theme={null}
> payment.onramp.initiated
> payment.onramp.quote_locked
> payment.onramp.fiat_pending
> … 30 minutes pass with no money …
> payment.onramp.failed
> ```
>
> Offramps work the same way: if no stablecoin arrives within 30 minutes of `payment.offramp.stables_pending`, you get `payment.offramp.failed`.

> [tab] Mobile money declined
>
> ```text theme={null}
> payment.onramp.initiated
> payment.onramp.quote_locked
> payment.onramp.fiat_pending
> … customer declines on their phone …
> payment.onramp.failed
> ```

> [tab] Wrong amount paid
>
> ```text theme={null}
> payment.onramp.initiated
> payment.onramp.quote_locked
> payment.onramp.fiat_pending
> payment.onramp.flagged      ← on hold for review
> payment.onramp.completed    ← or payment.onramp.failed, after the review
> ```

> [tab] Payout returned
>
> ```text theme={null}
> payment.offramp.initiated
> payment.offramp.quote_locked
> payment.offramp.stables_pending
> payment.offramp.stables_received
> payment.offramp.processing
> payment.offramp.completed
> payment.offramp.reversed    ← the bank sent the money back
> ```

> [tab] Paused and resumed
>
> ```text theme={null}
> …
> payment.onramp.fiat_received
> payment.onramp.paused
> payment.onramp.resumed
> payment.onramp.processing
> payment.onramp.completed
> ```

## Things to keep in mind

* You only get the events you chose for your endpoint. If you didn't pick `quote_locked`, you won't see it, and the next event still arrives.
* Steps can happen quickly. You may get several events within a few seconds.
* A final event (`completed`, `failed`, `canceled`, `reversed`) normally means no more events. The one exception is `reversed`, which can follow `completed`.


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