Obtain a Zuora OAuth client ID and client secret from Zuora Settings > Administration > Security > OAuth Clients; clients can be scoped to specific permissions.
Request an access token by POSTing to https://{tenant}.zuora.com/oauth/token with form body 'grant_type=client_credentials', 'client_id', and 'client_secret'; the response contains an 'access_token' valid for a limited period (typically one hour).
Include 'Authorization: Bearer {access_token}' in all subsequent API requests; also include 'Content-Type: application/json'.
Use the Orders API (POST /v1/orders) to create, amend, suspend, resume, or cancel subscriptions atomically — the Orders API supersedes the older Subscriptions API for complex subscription lifecycle operations.
An order request contains 'existingAccountNumber' (or new account details), 'orderDate', and 'subscriptions' array; each subscription entry includes 'orderActions' array describing what to do (e.g., 'CreateSubscription', 'AddProduct', 'UpdateProduct').
Retrieve order results and subscription IDs from the response; use GET /v1/subscriptions/accounts/{accountKey} to list all subscriptions for a customer account.
Known gotchas
Zuora has multiple coexisting API generations: the REST API (/v1), the Collect API for payment operations, and legacy SOAP-based APIs — documentation for all three exists simultaneously and it's easy to follow examples for the wrong API version; confirm you're using the /v1 REST path.
Zuora tenant URLs vary by data center and environment (production vs. sandbox vs. test tenant); the OAuth token endpoint and API base URL must match the same tenant — using a production token against a sandbox URL or vice versa returns authentication errors.
Orders API requires the 'Orders' feature to be enabled for your Zuora tenant — it is not enabled by default on all plans; if you receive 'Feature not enabled' errors, contact Zuora support to enable the Orders feature on your tenant before proceeding.
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