> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.solvimon.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.solvimon.com/_mcp/server.

# write_subscription

**Live server:** test server (`test.mcp.solvimon.com`) only.

Creates and manages BILLING subscriptions and their schedules. Use `init` to subscribe a known customer from your backend. Use [`create_checkout_link`](/mcp-server/tools/create-checkout-link) for self-serve. Quotes go through [`create_quote`](/mcp-server/tools/create-quote) and [`write_quote`](/mcp-server/tools/write-quote).

**Actions:** `create`, `update`, `delete`, `init`, `activate`, `cancel`, `void`, `archive`, `copy`

**Resource types:** `pricing_plan_subscriptions`, `pricing_plan_subscription_groups`, `pricing_plan_schedules`

* `init` activates at once. For a ramp (several schedules on one subscription), `create` a DRAFT subscription with its schedules, review it, then `activate`.
* Every schedule is checked: an ACTIVE plan version, a `billing_period` the version declares (required when it declares several), no overlap with the next schedule. Gaps and a start in the past are warned about.
* A config with a yearly price and no `pricing_period` is refused, because it would be charged every period.
* `cancel` ends the subscription at period end. `void` terminates it immediately. `copy` duplicates it in `DRAFT` with all schedules, discounts and commitments.

**`Subscribe an existing customer`**

```json Subscribe an existing customer
{
  "action": "init",
  "resource_type": "pricing_plan_subscriptions",
  "body": {
    "pricing_plan_subscription": {"customer_id": "cust_AbD3DqausjOYiMNDZY11F", "reference": "acme-2026"},
    "pricing_plan_schedules": [{
      "pricing_plan_version_id": "ppve_Zt6yUw2QmK9nXr4VcHb37",
      "start_at": "2026-11-01T00:00:00Z",
      "billing_period": {"type": "MONTH", "value": 1},
      "pricing_currency": "EUR"
    }]
  }
}
```