Revoke a mandate with a wallet
Customer-initiated. Removes the mandate’s spending allowance on-chain using the customer’s signed payloads from Get wallet revocation options. The customer signs the payloads themselves, so this call is unauthenticated. The mandate must have an active allowance and no approval or revocation in flight.
Returns a pending revocation and moves the mandate to revocation_pending. When the network transaction confirms, revokedAt is set and status becomes revocation_succeeded; if it does not complete, status becomes revocation_failed and a new revocation can be submitted. Follow progress with Get a mandate revocation or the acceptance.mandate.revocation_* webhooks.
A canceled mandate can still be revoked: the revocation sets revokedAt while canceledAt remains set.
Headers
An optional string request header for making requests safely retryable. When included, duplicate requests with the same key will return identical responses. Refer to our Idempotency docs for more information on using idempotency keys.
1 - 128Path Parameters
The unique identifier of the mandate to revoke.
The ID of the mandate, a UUID prefixed by mandate_.
^mandate_[a-f0-9\-]{36}$"mandate_82c879c1-84e1-44ed-a8c2-1ac239cf09ad"
Body
A request to remove a mandate's spending allowance on-chain. Submit the optionId the customer chose from Get wallet revocation options along with their signed payloads. Returns a pending revocation that resolves once the network transaction confirms.
The identifier of the chosen option. Must match an optionId from the Get wallet revocation options response.
"opt_b2c3d4e5-f6a7-8901-bcde-f23456789012"
The processed payloads from the customer, corresponding to the payloads in the selected option.
An optional human-readable reason for revoking the spending allowance.
"Customer requested that the allowance be removed."
Optional metadata as key-value pairs. Use this to store additional structured information on a resource, such as customer IDs, order references, or any application-specific data. Up to 10 key/value pairs may be provided. Keys and values are both strings. Keys must be ≤ 40 characters; values must be ≤ 500 characters.
Response
Successfully created mandate wallet revocation.
A record of a wallet revocation: the customer removing the mandate's spending allowance on-chain (see onchainTransactions). While it is confirming, the mandate's status is revocation_pending; on success it becomes revocation_succeeded and the mandate's revokedAt is set, and on failure it becomes revocation_failed. This applies regardless of whether the mandate was previously canceled: a revocation on an already-canceled mandate still moves status through the revocation_* values and sets revokedAt.
To check whether the spending allowance is still active, read the mandate: revokedAt is set once the allowance has been removed.
The unique identifier of the revocation.
^revocation_[a-f0-9\-]{36}$"revocation_9d2e7c14-3b8a-4f21-9c66-2a1e5d7b8f03"
The unique identifier of the mandate this revocation applies to.
^mandate_[a-f0-9\-]{36}$"mandate_82c879c1-84e1-44ed-a8c2-1ac239cf09ad"
The current status of the revocation attempt.
pending, succeeded, failed "succeeded"
The UTC ISO 8601 timestamp at which the revocation was created.
"2026-08-21T14:10:00.000Z"
The UTC ISO 8601 timestamp at which the revocation was last updated.
"2026-08-21T14:12:00.000Z"
Network transactions that remove the spending allowance on-chain. Empty until the revocation has been submitted to the network.
Details of why the revocation failed. Only present when status is failed.
Optional metadata as key-value pairs. Use this to store additional structured information on a resource, such as customer IDs, order references, or any application-specific data. Up to 10 key/value pairs may be provided. Keys and values are both strings. Keys must be ≤ 40 characters; values must be ≤ 500 characters.