> For the complete index of the 402pay docs, see [llms.txt](https://developer.402pay.co/llms.txt).

# Cancel a wallet change

Stop a wallet deletion while it's still waiting out the hold.

`POST https://dash.402pay.co/api/v1/wallet/changes/{id}/cancel`

Stops a deletion that's waiting out its hold, so your wallet stays and payments keep going to it. It takes a person signed in to the dashboard, but no step-up, since nothing about where payments go changes. Canceling one that's already canceled returns it as it is.

### Path

- `id` (string, required): The wallet change's ID, such as `wcr_7QmVx2LpT9sKd4Rz`.

### Errors

- 403 `session_required` An API key sent the request. Only a person signed in to the dashboard can send.
- 404 `not_found` No wallet change of your business has that ID.
- 409 `wallet_change_applied` The hold is over and the change took effect, so there's nothing to cancel.

Any request can also fail on its key or its body. See [errors](https://developer.402pay.co/api/errors.md).

Request, Browser:

```js
// On a dashboard page, whose session cookie the browser sends.
const response = await fetch("/api/v1/wallet/changes/wcr_7QmVx2LpT9sKd4Rz/cancel", {
  method: "POST",
  headers: {
    "402pay-Business": businessId,
  },
});
const { data } = await response.json();
```

Response, 200 OK:

```json
{
  "data": {
    "id": "wcr_7QmVx2LpT9sKd4Rz",
    "kind": "wallet_change",
    "change": "delete",
    "status": "canceled",
    "wallet_id": "wal_1fIGZOrILmsCO0jw",
    "effective_at": "2026-09-29T14:05:09.123Z",
    "canceled_at": "2026-09-28T16:41:37.502Z",
    "created_at": "2026-09-28T14:05:09.123Z"
  }
}
```
