Skip to content
Logo

GET /liquidations

List auto-liquidations draining the org's virtual accounts: when a virtual fiat account has a liquidation target, each deposit into it is automatically converted and settled on-chain to that target, and this endpoint lists those settlements. Sorted by (created_at desc, id desc) and clamped to limit (default 50, max 200).

Seismic registers each liquidation the moment it is first reported, even before it settles, and advances its status forward as it does. That means a liquidation that stalls in flight, or one that is reversed back to the source account, is still visible here for its whole life. A sweep refused before it was ever dispatched is the exception: it moved no money and has nothing to reconcile against, so it never appears here.

This is the read-side twin of the account.deposit_liquidated webhook event: the event announces the settlement, and the registered liquidation stays queryable here. id matches the event's liquidation.id, so a missed or dropped delivery can always be reconciled against this endpoint. deposit_id links back to the funding deposit on GET /deposits, tying the two halves of the flow together.

Query params

ParamTypeNotes
account_idstring?Narrow to a single drained account.
customer_idstring?Narrow to a single customer.
deposit_idstring?Narrow to the liquidation(s) of one deposit.
limitinteger (1–200, default 50)Page size.
cursorstringOpaque cursor from the prior page's next_cursor.

Response 200

{
  "liquidations": [
    {
      "id": "9cf1…",
      "customer_id": "2f10…",
      "account_id": "7c1d…",
      "deposit_id": "3628…",
      "from_amount": "4000",
      "from_currency": "USD",
      "to_amount": "3997.20",
      "to_currency": "USDC",
      "destination_address": "0x77eb1aEd3F1fF38f7e7Cef9f018474fc2a0a718c",
      "destination_chain": "base",
      "transaction_hash": "0xaedb8bfd408cecdf2ce43e50c1c0c56c767d06348df77c4f67d9da7db114c3af",
      "status": "completed",
      "created_at": "2026-07-23T23:18:00Z"
    },
    {
      "id": "d0d8…",
      "customer_id": "2f10…",
      "account_id": "7c1d…",
      "from_amount": "10",
      "from_currency": "USD",
      "to_amount": "10",
      "to_currency": "USDC",
      "status": "processing",
      "created_at": "2026-07-08T21:25:00Z"
    }
  ]
}

When more pages remain, next_cursor is set.

Liquidation fields

FieldTypeNotes
idUUIDSeismic's identifier for the registered liquidation: the same id the webhook event carries in liquidation.id.
customer_idUUIDCustomer owning the drained account.
account_idUUIDThe drained virtual account. Resolve with GET /accounts/:id. Optional: absent when the report named no account registered with Seismic.
deposit_idUUIDThe funding deposit on GET /deposits. Optional: absent when Seismic cannot resolve the link.
from_amountstringDecimal amount drained from the source account. Optional: absent when the report omits it.
from_currencystringCurrency drained. Optional: absent when the report omits it.
to_amountstringDecimal amount settled to the destination. Optional: absent when the report omits it.
to_currencystringCurrency settled. Optional: absent when the report omits it.
exchange_ratestringConversion rate applied. Optional: absent when the report omits it.
feestringFee taken on the conversion, in the source currency. Optional: absent when the report omits it.
destination_addressstringOn-chain address the proceeds settled to. Optional.
destination_chainstringChain of the destination address. Pairs with destination_address. Optional.
transaction_hashstringOn-chain settlement hash of the crypto leg. Optional: absent until the settlement is reported.
statusstatusWhere the liquidation is in its lifecycle. Advances forward only.
status_reasonstringReported explanation for the current status (e.g. why a payout failed). Optional: usually absent.
created_attimestampWhen Seismic registered the liquidation.

Status

ValueMeaning
pendingReported but not yet dispatched.
processingDispatched and in progress; funds may be converting or in flight.
sentSent to the receiving bank or network; funds in flight.
completedThe proceeds settled to the destination. Fires account.deposit_liquidated on the transition into this state.
refundedReversed back to the source account, possibly after completing.
failedThe payout was dispatched and failed. A sweep refused before dispatch is also recorded failed, but is not listed here.

Statuses only move forward: pending → processing → sent → completed, terminating in refunded or failed when the payout bounces. A liquidation can also jump straight to a later state in its first report.

Example

curl "$SEISMIC_ORCHESTRATION_URL/v0/liquidations?deposit_id=3628c1c7…" \
  -H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY"