Skip to content
Seismic Orchestration

POST /customers/orders/:id/cancel

Cancel an order that is still awaiting or gathering funds. Seismic cancels the order and flips its status to canceled, returning the updated order. Only orders in awaiting_funds or pending are cancelable. Once an order is under_review, processing or later, it can no longer be canceled.

The call is scoped to the org bound to the credential, and there is no request body.

The canceled order is returned in the response itself. A cancellation you initiated does not fire an order.status_changed webhook. Once canceled, the order is terminal: its funding_instructions should no longer be used, and the order cannot be reopened — accept a new quote instead.

Response 200

The updated order (status: "canceled"), same shape returned by POST /quotes/:id/accept.

{
  "id": "f01e…",
  "status": "canceled",
  "source": {
    "amount": "100.00",
    "currency": "EUR",
    "rail": "sepa",
    "account_id": "5d8a…"
  },
  "destination": {
    "amount": "108.42",
    "currency": "USDC",
    "rail": "base",
    "account_id": "9b2f…"
  },
  "reference": "invoice-2026-04-001",
  "comment": "Off-ramp for Acme March payroll",
  "idempotency_key": "8b3c4d5e-…",
  "created_at": "2026-04-12T14:23:01.000Z"
}

Errors

  • 400 InvalidRequest: this payment doesn't support cancellation. Not every payment is cancelable. When it isn't, the order must play out.
  • 404 NotFound: no order with that id under your org.
  • 409 OrderNotCancelable: the order has advanced past the cancelable window (status on the error body carries the current state).

Example

curl -X POST "$SEISMIC_ORCHESTRATION_URL/v0/customers/orders/f01e…/cancel" \
  -H "Api-Key: $SEISMIC_ORCHESTRATION_API_KEY"