# RevCent MCP Guide: `EditSubscription`

Brief AI/MCP-focused guide for editing a RevCent Subscription.

Reference overview:

```text
https://revcent.com/documentation/markdown/mcp/operation/OverviewSubscription.md
```

---

## Operation Summary

Operation:

```text
EditSubscription
```

Purpose:

```text
Edit attributes of an existing subscription using the subscription ID.
```

Use `EditSubscription` when the user wants to modify subscription-level attributes such as:

- subscription amount,
- coupons attached to the subscription,
- next renewal date,
- shipping destination,
- subscription profile where appropriate.

Important:

```text
EditSubscription is not for changing active status.
```

Use lifecycle operations instead:

| Desired Action | Correct Operation |
|---|---|
| Suspend/pause subscription | `SuspendSubscription` |
| Restart suspended subscription | `ActivateSubscription` |
| Permanently cancel subscription | `CancelSubscription` |

---

## When to Run

Run `EditSubscription` when there is an explicit operational reason to modify the subscription.

Examples:

- update the next renewal date,
- update the subscription amount,
- attach coupons,
- update shipping destination,
- change the subscription profile intentionally.

Do not use this operation for simple status changes such as cancel, suspend, or activate.

---

## Custom Renewal Cycle Warning

If a customer wants a custom renewal cycle, do not casually edit a globally used Subscription Profile.

Correct approach:

```text
If the customer's current profile is global:
    Create a subscription-specific profile for that customer's subscription.

If the customer's current profile is already subscription-specific:
    Editing the profile may be appropriate.
```

The operation schema notes that product modification and customizing a specific subscription's renewal period may be handled through the web app.

AI/MCP clients should avoid changing global billing behavior for a single customer.

---

## Input Schema

Required:

| Field | Type | Description |
|---|---|---|
| `subscription_id` | string | 20-character Subscription ID. |

Optional:

| Field | Type | Description |
|---|---|---|
| `subscription_profile` | string | 20-character Subscription Profile ID. |
| `coupon` | array[string] | Array of 20-character Coupon IDs to attach. |
| `amount` | number | Subscription amount. |
| `next_renewal_date` | string/date-time | Set the subscription's next renewal date. |
| `ship_to` | object | Shipping destination object. |

`ship_to` can include:

```text
first_name
last_name
address_line_1
address_line_2
city
state
zip
company
country
email
phone
```

`country` should use a three-letter ISO 3166-1 alpha-3 code.

---

## Example Request

```json
{
  "subscription_id": "SSSSSSSSSSSSSSSSSSSS",
  "next_renewal_date": "2026-07-01T00:00:00Z"
}
```

---

## Best Practices

- Retrieve the subscription first with `GetSubscription`.
- Confirm the user intends to edit this exact subscription.
- Only send fields that should be changed.
- Do not use this operation for cancellation, suspension, or activation.
- Be careful changing amount, renewal date, coupons, or profile because these can affect billing.
- Use `BigQueryRunQuery` for reporting, not subscription edit operations.

---

## Final AI/MCP Instruction

Use `EditSubscription` only when the user wants to modify subscription attributes. Do not use it to suspend, activate, or cancel a subscription. Retrieve and confirm the subscription first, then send only the fields that should change.


---
Document Parent Directory
* [Operations](https://revcent.com/documentation/markdown/mcp/operation/index.md) - AI/MCP details and overviews for operations available within the RevCent MCP.