> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update subscription

> Change the plan, billing cycle, seats or add-ons of an account; returns what changed, or a checkout URL when the change needs payment.

`veryfront__update_subscription`

Requires account.billing.manage.

## Access

No external-service connection is required. Use a Veryfront credential with access to the requested resources.

**Call type:** Can change resources.

## Arguments

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `type` | `string` | Yes | Subscription tier to upgrade to. Values: `"free"`, `"pro"`, `"enterprise"`. |
| `cycle` | `string` | Yes | Billing cycle Values: `"monthly"`, `"yearly"`. |
| `quantity` | `integer` | No | Seat quantity for licensed subscriptions Minimum: `1`. |
| `server_quantity` | `integer` | No | Recurring server add-on quantity Minimum: `0`. |
| `sandbox_quantity` | `integer` | No | Recurring sandbox add-on quantity Minimum: `0`. |
| `success_url` | `string` | No | URL to redirect to after successful payment Format: `uri`. |
| `cancel_url` | `string` | No | URL to redirect to if payment is canceled. Format: `uri`. |

## Example request

Send this JSON-RPC request through an initialized MCP client. Replace sample identifiers and values before calling the tool. See [MCP client setup](https://veryfront.com/docs/cloud/getting-started/connect-mcp.md).

```json title="request.json" theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "veryfront__update_subscription",
    "arguments": {
      "type": "free",
      "cycle": "monthly"
    }
  }
}
```

## Result

The published output shape is summarized below. Inspect both the MCP response content and `isError` when handling a call.

| Field | Type | Required | Description and constraints |
| - | - | - | - |
| `status` | `string` | Yes | What the update did. `checkout_created` means payment is required at `checkout_url`. Values: `"subscription_updated"`, `"seats_updated"`, `"add_ons_updated"`, `"checkout_created"`. |
| `amount` | `string or null` | Yes | Exact decimal amount due, without a currency suffix. Null when no amount is due or known. |
| `currency` | `string or null` | Yes | ISO 4217 currency of `amount` in upper case. Null without an amount. |
| `checkout_url` | `string or null` | Yes | Stripe checkout session URL when payment is required. Null when the change was applied in place. |

## Full schemas

```json title="input-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "free",
        "pro",
        "enterprise"
      ],
      "description": "Subscription tier to upgrade to."
    },
    "cycle": {
      "type": "string",
      "enum": [
        "monthly",
        "yearly"
      ],
      "description": "Billing cycle"
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "description": "Seat quantity for licensed subscriptions"
    },
    "server_quantity": {
      "type": "integer",
      "minimum": 0,
      "description": "Recurring server add-on quantity"
    },
    "sandbox_quantity": {
      "type": "integer",
      "minimum": 0,
      "description": "Recurring sandbox add-on quantity"
    },
    "success_url": {
      "type": "string",
      "format": "uri",
      "description": "URL to redirect to after successful payment"
    },
    "cancel_url": {
      "type": "string",
      "format": "uri",
      "description": "URL to redirect to if payment is canceled."
    }
  },
  "required": [
    "type",
    "cycle"
  ],
  "additionalProperties": false,
  "description": "Arguments for the update_subscription tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

```json title="output-schema.json" theme={null}
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "subscription_updated",
        "seats_updated",
        "add_ons_updated",
        "checkout_created"
      ],
      "description": "What the update did. `checkout_created` means payment is required at `checkout_url`."
    },
    "amount": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        },
        {
          "type": "null",
          "description": "The amount returned by the tool."
        }
      ],
      "description": "Exact decimal amount due, without a currency suffix. Null when no amount is due or known."
    },
    "currency": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO 4217 currency of `amount` in upper case. Null without an amount."
    },
    "checkout_url": {
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "null",
          "description": "The checkout url returned by the tool."
        }
      ],
      "description": "Stripe checkout session URL when payment is required. Null when the change was applied in place."
    }
  },
  "required": [
    "status",
    "amount",
    "currency",
    "checkout_url"
  ],
  "additionalProperties": false,
  "description": "Structured result returned by the update_subscription tool.",
  "$schema": "http://json-schema.org/draft-07/schema#"
}
```

<details>
  <summary>Try this tool</summary>

  Replace sample arguments with values for your project or connected account. Calls run only when you select Run tool.

  MCP tool call

  Call `veryfront__update_subscription` against the Veryfront MCP endpoint.

  Bearer token or API key

  Arguments (JSON)

  Run this tool with these arguments.

  Run tool

  Output JSON

  <pre />
</details>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.