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

# Offramp events

> Every event we send during an offramp: what it means and when it fires.

These events are sent while a customer sends stablecoin and receives fiat.

> [!NOTE]
>
> Two event names have an extra `s` compared with the state they report: the event `payment.offramp.stables_pending` reports the state `stable_pending`, and `payment.offramp.stables_received` reports `stable_received`.

## Summary

| Event | State | Status | Fires when |
| - | - | - | - |
| `payment.offramp.initiated` | `initiated` | `pending` | You created the offramp. |
| `payment.offramp.quote_locked` | `quote_locked` | `pending` | The quote's price is held for this payment. |
| `payment.offramp.stables_pending` | `stable_pending` | `pending` | We're waiting for your customer's stablecoin. |
| `payment.offramp.stables_received` | `stable_received` | `pending` | Your customer's stablecoin has arrived. |
| `payment.offramp.processing` | `processing` | `pending` | We're paying the fiat out. |
| `payment.offramp.completed` | `completed` | `success` | The fiat has been paid. **Final.** |
| `payment.offramp.failed` | `failed` | `failed` | The payment couldn't be finished. **Final.** |
| `payment.offramp.canceled` | `canceled` | `failed` | The payment was canceled. **Final.** |
| `payment.offramp.reversed` | `reversed` | `failed` | The payout was returned. **Final.** |
| `payment.offramp.flagged` | `flagged` | `pending` | The payment is on hold for a review. |
| `payment.offramp.paused` | `paused` | `pending` | The payment is on hold. |
| `payment.offramp.resumed` | (the state it continues from) | `pending` | A held payment carries on. |

## Each event in detail

> [accordion] payment.offramp.initiated
>
> **What it means:** The payment exists. You already have the deposit address from the create response.
>
> **What usually comes next:** `quote_locked`.

> [accordion] payment.offramp.quote\_locked
>
> **What it means:** The quote is tied to this payment and can't be used again.
>
> **What usually comes next:** `stables_pending`.

> [accordion] payment.offramp.stables\_pending
>
> **What it means:** We're waiting for your customer to send the stablecoin to the deposit address. They have 30 minutes.
>
> **What usually comes next:** `stables_received`. It's `failed` if nothing arrives within 30 minutes, or `flagged` if the wrong amount arrives.
>
> **What to do:** Show the deposit address and network. Remind your customer to send.

> [accordion] payment.offramp.stables\_received
>
> **What it means:** The stablecoin has arrived.
>
> **What usually comes next:** `processing`.
>
> **What to do:** Tell your customer their crypto was received.

> [accordion] payment.offramp.processing
>
> **What it means:** We're paying the fiat to the bank account or mobile money wallet.
>
> **What usually comes next:** `completed`. Sometimes `flagged` if something needs checking.

> [accordion] payment.offramp.completed
>
> **What it means:** The fiat has been paid. This is a success, and it's final.
>
> **What to do:** Show success.

> [accordion] payment.offramp.failed
>
> **What it means:** The payment ended without finishing, for example no stablecoin arrived within 30 minutes. Final.
>
> **What to do:** Tell your customer. If they had already sent stablecoin, contact support with the payment ID.

> [accordion] payment.offramp.canceled
>
> **What it means:** The payment was canceled before it finished. Final.

> [accordion] payment.offramp.reversed
>
> **What it means:** The payout was returned, for example because the bank rejected it. Final.
>
> **What to do:** Contact support with the payment ID.

> [accordion] payment.offramp.flagged
>
> **What it means:** The payment is on hold for a review. For example, the stablecoin amount received didn't match.
>
> **What usually comes next:** After the review, `completed` or `failed`.
>
> **What to do:** Tell your customer the payment is being checked. Don't create a duplicate.

> [accordion] payment.offramp.paused
>
> **What it means:** The payment is on hold.
>
> **What usually comes next:** `resumed`.

> [accordion] payment.offramp.resumed
>
> **What it means:** A paused payment is moving again.

## Example payload

```json theme={null}
{
  "id": "wbd_4cB6dE8fK2mQ9xLp3VnR7tY1wZ",
  "event_id": "evt_9xLp3VnR7tY1wZ4cB6dE8fK2mQ",
  "event_type": "payment.offramp.stables_received",
  "api_version": "2026-10-29-atlas",
  "business_id": "bus_0190f2a1-7c3b-7d4e-9f10-2a3b4c5d6e7f",
  "created_at": "2026-10-28T12:02:11.530Z",
  "data": {
    "payment_id": "pay_3VnR7tY1wZ4cB6dE8fK2mQ9xLp",
    "reference_id": "ref_2mQ9xLp3VnR7tY1wZ4cB6dE8fK",
    "type": "payment.offramp.stables_received",
    "party": "1st",
    "state": "stable_received",
    "status": "pending",
    "created_at": "2026-10-28T11:58:40.000Z",
    "updated_at": "2026-10-28T12:02:11.000Z"
  }
}
```

Every offramp event has this same shape. Only `event_type`, `data.type`, `data.state`, and `data.status` change.


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