# UpdateRecurringBillingSubscriptionInput

Input · GraphQL API

Top-level input fields for updating a subscription.

## Fields

- `clientMutationId` (`String`): An identifier used to reconcile requests and responses. 255 characters maximum.
- `subscriptionId` (`ID!`) — required: The ID of the subscription to update.
- `planId` (`ID`): Updating a plan only changes the association; the price is not automatically changed. You can only update to a plan with the same billing cycle. You can't edit the plan on a Past Due, Expired, or Canceled subscription.
- `merchantAccountId` (`ID`): The merchant account ID used to create the subscription's transactions. Currency is also determined by merchant account ID and it must match the Plan's currency.
- `price` (`Amount`): The new base price for the subscription. Must be a positive decimal value (e.g., 10 or 10.00). Overrides the previous price. Cannot be changed if the subscription is Past Due, Expired, or Canceled. Currency is determined by the merchant account.
- `numberOfBillingCycles` (`Int`): The number of times the billing cycle will be executed. Set to 0 to indicate the subscription never expires (bills indefinitely). Valid range: 0-999.
- `paymentMethodId` (`ID`): The payment method identifier to use for this subscription. Accepts single-use or multi-use payment methods. A single-use payment method will be vaulted automatically.
- `payPalDescription` (`String`): The description displayed to customers in PayPal email receipts. 127 character maximum.
- `modifications` (`RecurringBillingSubscriptionModificationInput`): How to apply add-on and discount modifications.
- `overrides` (`UpdateRecurringBillingSubscriptionOptionsInput`): Optional execution flags for subscription updates.
- `descriptor` (`RecurringBillingSubscriptionDescriptorInput`): Update the bank statement descriptor fields.

## Used by

- [updateRecurringBillingSubscription](/braintree/graphql/reference/mutations/update-recurring-billing-subscription) — Mutation; input

## GraphQL definition

```graphql
input UpdateRecurringBillingSubscriptionInput {
  clientMutationId: String
  subscriptionId: ID!
  planId: ID
  merchantAccountId: ID
  price: Amount
  numberOfBillingCycles: Int
  paymentMethodId: ID
  payPalDescription: String
  modifications: RecurringBillingSubscriptionModificationInput
  overrides: UpdateRecurringBillingSubscriptionOptionsInput
  descriptor: RecurringBillingSubscriptionDescriptorInput
}
```

---

[View the complete GraphQL schema on GitHub](https://raw.githubusercontent.com/braintree/graphql-api/refs/heads/master/schema.graphql)