Ask for an invitation
Menu

Webhook event

conversion.failed

The transaction failed on chain or the route failed and the funds are back in the merchant wallet. The reserve is released. Failure codes are in the failure codes of money out.

Type
conversion.failed
The object it carries
the conversion object
Subscribe with
conversion.failed, 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_94r13203dk1kdja3whct0yfs",
  "object": "event",
  "livemode": true,
  "created": "2026-10-12T10:13:40.000Z",
  "type": "conversion.failed",
  "api_version": "2026-10-11",
  "data": {
    "object": {
      "id": "cv_ban2ezvpwf4j4d09h4htv42j",
      "object": "conversion",
      "livemode": true,
      "created": "2026-10-12T11:00:30.000Z",
      "updated": "2026-10-12T10:13:40.000Z",
      "status": "failed",
      "pending_reason": null,
      "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": "mem_ceh1wpzdrpk13cnpcjy9w0fa",
      "approval_url": null,
      "approval_expires_at": "2026-10-19T11:00:30.000Z",
      "send_transaction_hash": "0x1f3cb18e896256d7d6bb8c11a6ec71f005c75de05e39beae5d93bbd1e2c8b7a9",
      "receive_transaction_hash": null,
      "failure_code": "transaction_reverted",
      "cancellation_reason": null,
      "approved_at": "2026-10-12T10:12:00.000Z",
      "sent_at": "2026-10-12T10:12:09.000Z",
      "confirmed_at": null,
      "metadata": {}
    },
    "previous_attributes": {
      "status": "sent",
      "failure_code": null
    }
  },
  "request": {
    "id": null,
    "idempotency_key": null
  },
  "pending_webhooks": 1
}

Fields of data.object

Fields of data.object in conversion.failed
FieldIn this example
id"cv_ban2ezvpwf4j4d09h4htv42j"
object"conversion"
livemodetrue
created"2026-10-12T11:00:30.000Z"
updated"2026-10-12T10:13:40.000Z"
status"failed"
pending_reasonnull
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_by"mem_ceh1wpzdrpk13cnpcjy9w0fa"
approval_urlnull
approval_expires_at"2026-10-19T11:00:30.000Z"
send_transaction_hash"0x1f3cb18e896256d7d6bb8c11a6ec71f005c75de05e39beae5d93bbd1e2c8b7a9"
receive_transaction_hashnull
failure_code"transaction_reverted"
cancellation_reasonnull
approved_at"2026-10-12T10:12:00.000Z"
sent_at"2026-10-12T10:12:09.000Z"
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, failure_code.

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.