DELETE /accounts/:id
Delete a single account by its UUID, polymorphically across fiat and crypto. Scoped to the org bound to the credential. Accounts owned by a different org return 404.
The record is retained for audit, but from the API's perspective the account is gone: it no longer appears in GET /accounts or GET /accounts/:id, and it can no longer be quoted or settled against.
Deleting does not close the underlying account that was provisioned. Nothing is torn down, which is what makes the delete recoverable.
Getting a deleted account back
Re-create it. A create whose configuration exactly matches an account you deleted restores that account instead of provisioning a new one: the original id comes back, along with its bank details or wallet address, and an account.created webhook is emitted so your system knows it is usable again.
"Exactly matches" means every stored field, not just the ones that make a create a duplicate:
- Same customer, currency and rails.
- Same unique key for an external bank account; same wallet address and network for an external crypto account.
- Same
liquidation.account_idandliquidation.developer_fee_bpsfor a virtual bank account. - The deleted virtual account is still provisioned where a new one for that customer and currency would be. Where a customer's virtual accounts are opened can change; when it has, the create opens a new account rather than returning the old one.
Anything else — a different liquidation destination, a different network, a corrected set of bank details — is a different account, and the create provisions one.
A restore consumes the deleted account: it is live again, so a further create with the same configuration is an ordinary duplicate and returns 400. Delete it again first if you want to repeat the cycle.
Restoring is not always possible. If the account that was provisioned has since been closed out of band, there is nothing to bring back and the create provisions a new one instead — the same outcome as never having had one.
Deleting is not the same as closing. A closed account stays visible on both endpoints with status: "closed" and keeps its history; it just stops publishing deposit instructions. Delete removes the record from those endpoints entirely.
Response 204
No content. The account has been deleted.
Errors
404: unknown id, or scoped to a different org.409: the account is referenced by an order that has not reached a terminal state. Wait for the order to complete, fail, or cancel, then retry.409: the account still holds a non-zero balance. Only virtual accounts can carry a balance. Withdraw the funds first. External accounts never carry a balance and never hit this case.
Example
curl -X DELETE "$SEISMIC_ORCHESTRATION_URL/v0/accounts/5e3a…" \
-H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY"