Ask for an invitation
Menu

Webhook event

conversion.approval_lapsed

Nobody approved within 7 days. The request is back in draft and its reserve is released; send it again with POST .../submit or cancel it.

Type
conversion.approval_lapsed
The object it carries
the conversion object
Subscribe with
conversion.approval_lapsed, conversion.* or *

Example payload

The body of the request your endpoint receives, shown here over several lines. On the wire it is compact JSON; check its signature over the bytes exactly as they arrive.

Example payload

{
  "id": "evt_3tvbdbcrvkgpj3db99tzf51v",
  "object": "event",
  "livemode": true,
  "created": "2026-10-19T10:00:00.000Z",
  "type": "conversion.approval_lapsed",
  "api_version": "2026-10-11",
  "data": {
    "object": {
      "id": "cv_ban2ezvpwf4j4d09h4htv42j",
      "object": "conversion",
      "livemode": true,
      "created": "2026-10-12T11:00:30.000Z",
      "updated": "2026-10-19T10:00:00.000Z",
      "status": "draft",
      "pending_reason": "approval_lapsed",
      "venue": "relay",
      "venue_progress": null,
      "from": {
        "wallet": "wal_zjdztygt4g73zm0cdcjjf43k",
        "asset": "bitcoin:btc",
        "amount": "0.01000000"
      },
      "to": {
        "wallet": "wal_bsfw07hymawmda7gg8jsyy3g",
        "asset": "base:usdc",
        "amount_estimated": "1168.420000",
        "amount_minimum": "1162.577900",
        "amount_received": null
      },
      "rate": "116842.00",
      "max_slippage_bps": 50,
      "fees": [
        {
          "kind": "route_fee",
          "amount": "1.38",
          "currency": "USD"
        },
        {
          "kind": "network_fee",
          "amount": "0.61",
          "currency": "USD"
        }
      ],
      "in_transit_notice": "While a conversion is being routed it is held by Relay, a separate company. Orrerie never holds it.",
      "requested_by": {
        "type": "api_key",
        "id": "key_6e3gg2c6ea176xxdek2nar6v"
      },
      "approved_by": null,
      "approval_url": null,
      "approval_expires_at": null,
      "send_transaction_hash": null,
      "receive_transaction_hash": null,
      "failure_code": null,
      "cancellation_reason": null,
      "approved_at": null,
      "sent_at": null,
      "confirmed_at": null,
      "metadata": {}
    },
    "previous_attributes": {
      "status": "awaiting_approval",
      "pending_reason": null
    }
  },
  "request": {
    "id": null,
    "idempotency_key": null
  },
  "pending_webhooks": 1
}

Fields of data.object

Fields of data.object in conversion.approval_lapsed
FieldIn this example
id"cv_ban2ezvpwf4j4d09h4htv42j"
object"conversion"
livemodetrue
created"2026-10-12T11:00:30.000Z"
updated"2026-10-19T10:00:00.000Z"
status"draft"
pending_reason"approval_lapsed"
venue"relay"
venue_progressnull
fromAn object with wallet, asset, amount
toAn object with wallet, asset, amount_estimated, amount_minimum, amount_received
rate"116842.00"
max_slippage_bps50
feesA list of 2 items
in_transit_notice"While a conversion is being routed it is held by Relay, a separate company. Orrerie never holds it."
requested_byAn object with type, id
approved_bynull
approval_urlnull
approval_expires_atnull
send_transaction_hashnull
receive_transaction_hashnull
failure_codenull
cancellation_reasonnull
approved_atnull
sent_atnull
confirmed_atnull
metadataAn object with no fields

What each field means is on the page of the conversion object. data.previous_attributes holds the old values of exactly the fields that changed: here status, pending_reason.

Endpoints behind it

Calls that change conversions. An event is also sent when a payer, the network, a timer or a person in the dashboard causes the change; the sentence above says which.