$kit->subscriptions->updateFields()field_<key> metadata entries) stored on a subscription, for example letting a customer change a seat count or a plan-specific option after the subscription already exists.| Field | Type | Required | Description |
|---|---|---|---|
subscriptionId | string | Yes | The subscription to update. |
fieldValues | array<string,string> | Yes | The new values, keyed by field key. |
schema | list<array> | No | If given, fieldValues is validated against this schema first, same shape and rules as customFields on $kit->checkout->create(). |
intervalDays | int | No, defaults to 30 | Purely informational, used to compute nextUpdateAvailableAtUtc in the response. StripeKit does not enforce this interval itself. |
fieldValues and nextUpdateAvailableAtUtc, not the full subscription record. Call retrieve() or sync() if you need the full record afterwards.| Exception | When |
|---|---|
ValidationError | schema was given and one or more values fail validation, $error->fieldErrors is set the same way as checkout->submitFields(). |
StripeOperationError | The subscription ID does not exist. |
field_* metadata keys derived from fieldValues, it does not touch any other metadata already on the subscription.storage adapter is configured, the full updated subscription record (not just the fields) is persisted via saveSubscription().nextUpdateAvailableAtUtc is not enforced anywhere in StripeKit itself, if you want to rate-limit how often a customer can change their fields, check this value yourself before calling updateFields() again.