POST to https://api.moov.io/accounts/{accountID}/capabilities with body {"capabilities": ["card-issuing"]} and header x-moov-version: v2026.04.00 to request the capability.
Retrieve the current capability state with GET /accounts/{accountID}/capabilities; inspect the status field — valid values are enabled, disabled, pending, and in-review.
If requirements.currentlyDue is non-empty, collect and submit the listed fields (e.g., individual.ssn, business.ein, representative fields) via the appropriate account or representative endpoints.
For document requirements such as document.individual.verification, upload the file using POST /accounts/{accountID}/files and reference the returned file ID in subsequent capability checks.
Subscribe to capability-related webhook events to receive real-time status transitions rather than polling continuously.
Once status is enabled, proceed to POST /issuing/{accountID}/issued-cards to create a virtual spending card.
Known gotchas
The Moov API has no version path segment in the base URL (https://api.moov.io); versioning is controlled exclusively through the x-moov-version request header.
The capability name is card-issuing (hyphenated); sending cardissuing or card_issuing will return a 422 validation error.
Moov may surface read-only system capabilities such as platform.production-app in the list response — these require no action and should not be confused with actionable capability requirements.
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