When creating or updating a card via POST /v1/issuing/cards or POST /v1/issuing/cards/<id>, include spending_controls.spending_limits as an array of objects each with amount (in smallest currency unit), categories (optional array), and interval (one of per_authorization, daily, weekly, monthly, yearly, all_time)
To set a per-authorization cap of $50 and a daily cap of $200, supply two objects in the array with the respective interval values
Amounts in spending_limits are in the card's currency minor units (cents for USD); double-check minor unit conversion to avoid 100x errors
To update limits on an existing active card, PATCH the card with a new spending_controls.spending_limits array; the update replaces the entire limits array, not individual entries
Verify limits are applied by using a simulated card in the Issuing test environment and triggering a test authorization that exceeds the cap
Known gotchas
Spending limits set on the card can be further restricted by cardholder-level spending_controls; the more restrictive of card vs. cardholder limits applies
The interval resets at UTC midnight (daily), start of week (weekly), etc., not from first use; plan your limit logic accordingly
Setting spending_limits with an empty array removes all limits; omitting the key leaves existing limits unchanged
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp