source. It lets a merchant debit the same source repeatedly without the customer present, which suits recurring payments and usage-based billing. A mandate does not move funds itself; a payment session authorizes against it via Authorize a payment session with a mandate, and capture, void, and refund then work as they do for any other session. For the full flow, spending limits, and integration options, see the Recurring Payments guide.
Access to the Mandates APIs requires enablement by Coinbase.
Who does what. Approving a mandate and revoking its on-chain spending allowance are customer-initiated: the customer signs the payload, so Approve a mandate with a wallet and Revoke a mandate with a wallet are unauthenticated. Creating, canceling, and reading mandates are merchant actions authenticated with your API key.
Canceling vs. revoking. These are independent. Cancel a mandate is an off-chain merchant action and does not touch the on-chain allowance (canceledAt is set). Revoke a mandate with a wallet removes the on-chain allowance (revokedAt is set). A canceled mandate can still have a live allowance until the customer revokes it. status records only the most recent transition; the timestamps are the durable record.