Skip to main content
POST
Approve 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 approve. 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 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.

optionId
string
required

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

Example:

"opt_a1b2c3d4-e5f6-7890-abcd-ef1234567890"

signedPayloads
object[]
required

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

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:

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.

approvalId
string
required

The unique identifier of the approval.

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

"approval_5f0e9d8c-7b6a-4321-fedc-ba0987654321"

status
enum<string>
required

The current status of the approval attempt.

Available options:
pending,
succeeded,
failed
Example:

"succeeded"

createdAt
string<date-time>
required

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

Example:

"2025-06-15T12:04:00.000Z"

updatedAt
string<date-time>
required

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

Example:

"2025-06-15T12:05:00.000Z"

source
Mandate Source Wallet · object

The funding source this approval binds to the mandate. Present once the source has been determined from the customer's submission.

Example:
onchainTransactions
object[]

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

Example:
error
object

Details of why the approval 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: