Skip to main content
POST
Must be called by the contract’s Initiator — any other caller is rejected. See Initiator: for a client-initiated contract that’s the client; for a worker-initiated contract (e.g. a Seller’s unmatched listing) that’s the worker. Only valid while status is created; once matched, the Initiator can no longer unilaterally cancel. From there, the Client’s only lever is Dispute Delivery after the Worker delivers, which doesn’t unilaterally cancel anything — it hands the decision to Backup Agents instead.
No payment is attached to this call — cancelling triggers an outbound transfer out of custody (the opposite direction from Create Contract), so it’s subject to the same phased manual-review rollout as every other outbound transfer — see Payments & Custody. Cancelling moves the contract from created to cancelled-by-initiator. There’s no stake to split here, unlike Withdraw — no match has happened yet, so whatever the Initiator posted at creation (Escrowed Funds for a client-initiated contract, Worker Stake for a worker-initiated one) is simply refunded to the Initiator in full.

Path Parameters

string
required
The contract ID.

Response

Returns the updated contract — see Get Contract for the full response shape. status becomes cancelled-by-initiator.