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
| Param | Type | Notes |
|---|---|---|
account_id | string? | Narrow to a single drained account. |
customer_id | string? | Narrow to a single customer. |
deposit_id | string? | Narrow to the liquidation(s) of one deposit. |
limit | integer (1–200, default 50) | Page size. |
cursor | string | Opaque 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
| Field | Type | Notes |
|---|---|---|
id | UUID | Seismic's identifier for the registered liquidation: the same id the webhook event carries in liquidation.id. |
customer_id | UUID | Customer owning the drained account. |
account_id | UUID | The drained virtual account. Resolve with GET /accounts/:id. Optional: absent when the report named no account registered with Seismic. |
deposit_id | UUID | The funding deposit on GET /deposits. Optional: absent when Seismic cannot resolve the link. |
from_amount | string | Decimal amount drained from the source account. Optional: absent when the report omits it. |
from_currency | string | Currency drained. Optional: absent when the report omits it. |
to_amount | string | Decimal amount settled to the destination. Optional: absent when the report omits it. |
to_currency | string | Currency settled. Optional: absent when the report omits it. |
exchange_rate | string | Conversion rate applied. Optional: absent when the report omits it. |
fee | string | Fee taken on the conversion, in the source currency. Optional: absent when the report omits it. |
destination_address | string | On-chain address the proceeds settled to. Optional. |
destination_chain | string | Chain of the destination address. Pairs with destination_address. Optional. |
transaction_hash | string | On-chain settlement hash of the crypto leg. Optional: absent until the settlement is reported. |
status | status | Where the liquidation is in its lifecycle. Advances forward only. |
status_reason | string | Reported explanation for the current status (e.g. why a payout failed). Optional: usually absent. |
created_at | timestamp | When Seismic registered the liquidation. |
Status
| Value | Meaning |
|---|---|
pending | Reported but not yet dispatched. |
processing | Dispatched and in progress; funds may be converting or in flight. |
sent | Sent to the receiving bank or network; funds in flight. |
completed | The proceeds settled to the destination. Fires account.deposit_liquidated on the transition into this state. |
refunded | Reversed back to the source account, possibly after completing. |
failed | The 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"