Authorize a payment session with a mandate
Merchant-initiated. The merchant draws against a mandate in approval_succeeded status using the mandate’s existing approval, so no fresh signature is required and the customer does not need to be present. The session must be in created status and the mandate must be in approval_succeeded status. When more than one mandate condition applies, the first match wins: an in-flight approval or revocation returns 409 (mandate_action_pending); revokedAt set returns 422 (mandate_revoked); canceledAt set returns 422 (mandate_canceled); a past expiresAt returns 400 (mandate_expired); any other status returns 422 (mandate_invalid_status).
It requires API key authentication: unlike the payer-present wallet flow there is no per-call signature to prove consent, so the merchant authenticates as the party entitled to draw against the mandate.
The charge must fall within the mandate’s policy. Exceeding maxPerAuthorization or maxPerPeriod returns 422 (mandate_policy_violation).
On authorization, a hold is placed on the payer’s funds. The authorization is returned in pending status and transitions asynchronously to succeeded or failed. If autoCapture is enabled on the session, a capture is automatically created after a successful authorization.
Authorizations
A JWT signed using your CDP API Key Secret, encoded in base64. Refer to the Generate Bearer Token section of our Authentication docs for information on how to generate your Bearer Token.
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 payment session to authorize.
The ID of the payment session, a UUID prefixed by paymentSession_.
^paymentSession_[a-f0-9\-]{36}$"paymentSession_82c879c1-84e1-44ed-a8c2-1ac239cf09ad"
Body
A request to authorize a payment session against a mandate in approval_succeeded status, using the mandate's existing approval. No fresh signature is required. The charge must fall within the mandate's policy.
The ID of the mandate to authorize against. Must be in approval_succeeded status.
^mandate_[a-f0-9\-]{36}$"mandate_82c879c1-84e1-44ed-a8c2-1ac239cf09ad"
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.
Optional customer-facing display data for this authorization, shown to the payer. Falls back to the session's orderCode when referenceCode is omitted.
An optional merchant-provided internal identifier for this mandate authorization, from the merchant's own system—not visible to the payer.
256"merchant-authorization-abc123"
Response
Successfully created mandate authorization.
A hold placed on the payer's funds. Once authorized, the merchant can capture (collect) the funds. Only one authorization is allowed per session.
The unique identifier of the authorization.
^authorization_[a-f0-9\-]{36}$"authorization_82c879c1-84e1-44ed-a8c2-1ac239cf09ad"
The ID of the payment session this authorization belongs to.
^paymentSession_[a-f0-9\-]{36}$"paymentSession_82c879c1-84e1-44ed-a8c2-1ac239cf09ad"
The current status of the authorization.
pending, succeeded, failed "pending"
A decimal representation of the authorized amount, denominated in the session's asset.
"1.00"
An error that occurred during a payment operation.
A human-readable message describing the outcome or status for display. Returned for x402 authorizations; omitted for other authorization flows unless documented otherwise.
"Your payment was successfully submitted"
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.
A merchant-provided internal identifier for this authorization, from the merchant's own system—not visible to the payer. Present only when supplied on the authorization request.
256"merchant-authorization-abc123"
Customer-facing display data for this authorization, shown to the payer. Present when supplied on the authorization request or when the session's orderCode fallback applies; otherwise omitted.
The payer for this authorization. For wallet authorizations, this is the blockchain address that signed the payloads. For Coinbase authorizations, this is the authenticated Coinbase account. This value is also reflected on the parent payment session's source field after a successful authorization.
- Payment Source Wallet
- Payment Source Coinbase
The onchain transactions associated with this authorization.
The UTC ISO 8601 timestamp at which the authorization was created.
"2025-06-15T12:00:00.000Z"
The UTC ISO 8601 timestamp at which the authorization was last updated.
"2025-06-15T12:01:00.000Z"