Approve a mandate with a wallet
Customer-initiated. Approves a mandate on a wallet source using the customer’s signed payloads from Get wallet approval options. The customer signs the payloads themselves, so this call is unauthenticated. The mandate must be in created or approval_failed status, not expired, and have no approval or revocation in flight.
Returns a pending approval and moves the mandate to approval_pending. On success the mandate’s source is set and status becomes approval_succeeded; it can then be used by Authorize a payment session with a mandate. On failure status becomes approval_failed and a new approval can be submitted. Follow progress with Get a mandate approval or the acceptance.mandate.approval_* webhooks.
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 approve.
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 approve a mandate on a wallet source. Submit the optionId the customer chose from Get wallet approval options along with the signed payloads. This creates a pending approval; the mandate becomes approval_succeeded once the approval succeeds.
The identifier of the chosen option. Must match an optionId from the Get wallet approval options response.
"opt_a1b2c3d4-e5f6-7890-abcd-ef1234567890"
The processed payloads from the customer, corresponding to the payloads in the selected option.
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 approval.
An attempt to attach a funding source to a mandate and make it usable. A successful approval sets the mandate's source and moves the mandate to approval_succeeded; a failed one moves the mandate to approval_failed and can be retried by submitting a new approval. A mandate holds at most one active source, so at most one approval ever succeeds. The network transactions that grant the spending allowance are on onchainTransactions.
The unique identifier of the approval.
^approval_[a-f0-9\-]{36}$"approval_5f0e9d8c-7b6a-4321-fedc-ba0987654321"
The current status of the approval attempt.
pending, succeeded, failed "succeeded"
The UTC ISO 8601 timestamp at which the approval was created.
"2025-06-15T12:04:00.000Z"
The UTC ISO 8601 timestamp at which the approval was last updated.
"2025-06-15T12:05:00.000Z"
The funding source this approval binds to the mandate. Present once the source has been determined from the customer's submission.
Network transactions that grant the spending allowance on-chain. Empty until the approval has been submitted to the network.
Details of why the approval 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.