Skip to main content
POST
Revoke a mandate with a wallet

Headers

X-Idempotency-Key
string

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.

Required string length: 1 - 128

Path Parameters

mandateId
string
required

The unique identifier of the mandate to revoke. The ID of the mandate, a UUID prefixed by mandate_.

Pattern: ^mandate_[a-f0-9\-]{36}$
Example:

"mandate_82c879c1-84e1-44ed-a8c2-1ac239cf09ad"

Body

application/json

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.

optionId
string
required

The identifier of the chosen option. Must match an optionId from the Get wallet revocation options response.

Example:

"opt_b2c3d4e5-f6a7-8901-bcde-f23456789012"

signedPayloads
object[]
required

The processed payloads from the customer, corresponding to the payloads in the selected option.

Example:
reason
string

An optional human-readable reason for revoking the spending allowance.

Example:

"Customer requested that the allowance be removed."

metadata
object

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.

Example:

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.

revocationId
string
required

The unique identifier of the revocation.

Pattern: ^revocation_[a-f0-9\-]{36}$
Example:

"revocation_9d2e7c14-3b8a-4f21-9c66-2a1e5d7b8f03"

mandateId
string
required

The unique identifier of the mandate this revocation applies to.

Pattern: ^mandate_[a-f0-9\-]{36}$
Example:

"mandate_82c879c1-84e1-44ed-a8c2-1ac239cf09ad"

status
enum<string>
required

The current status of the revocation attempt.

Available options:
pending,
succeeded,
failed
Example:

"succeeded"

createdAt
string<date-time>
required

The UTC ISO 8601 timestamp at which the revocation was created.

Example:

"2026-08-21T14:10:00.000Z"

updatedAt
string<date-time>
required

The UTC ISO 8601 timestamp at which the revocation was last updated.

Example:

"2026-08-21T14:12:00.000Z"

onchainTransactions
object[]

Network transactions that remove the spending allowance on-chain. Empty until the revocation has been submitted to the network.

Example:
error
object

Details of why the revocation failed. Only present when status is failed.

Example:
metadata
object

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.

Example: