Delete the wallet
Remove your wallet, right away during setup or after a 24-hour hold once you've been paid.
Removes your wallet, so checkout has nowhere to send payments until you add a new one. It takes a person signed in to the dashboard who confirmed their password or a passkey in the last 15 minutes, never an API key. Funds stay at the wallet's addresses on-chain, and its recovery phrase still controls them.
Once your business has received a payment (one collected as fees, or a referral payout, counts too), the deletion waits 24 hours: the answer is 202 with the pending change, and the wallet keeps receiving payments until effective_at. We email the owner a link that cancels it, which works without signing in, and canceling it from the dashboard works too. GET /wallet shows it as pending_change until then. A business still being set up loses its wallet right away, with 200.
Changing the wallet's encryption password isn't held: the phrase and its addresses stay the same.
Errors
- 403
session_requiredAn API key sent the request. Only a person signed in to the dashboard can send. - 403
step_up_requiredThe session hasn't proven its password or a passkey in the last 15 minutes. Confirm it atPOST /sessions/current/step-upand send the request again. - 404
not_foundYour business has no wallet yet. - 409
wallet_change_pendingThe wallet is already set to be deleted. Cancel the deletion first, or wait for it.
Any request can also fail on its key or its body. See errors.
// On a dashboard page, whose session cookie the browser sends.const response = await fetch("/api/v1/wallet", { method: "DELETE", headers: { "402pay-Business": businessId, },});const { data } = await response.json();{ "data": { "id": "wcr_7QmVx2LpT9sKd4Rz", "kind": "wallet_change", "change": "delete", "status": "pending", "wallet_id": "wal_1fIGZOrILmsCO0jw", "effective_at": "2026-09-29T14:05:09.123Z", "canceled_at": null, "created_at": "2026-09-28T14:05:09.123Z" }}