# Update a ReservePlan

Update a ReservePlan’s configuration, percentage, or metadata.

## Request

```curl
curl https://api.stripe.com/v1/reserve/plans/resplan_61SxxwCbZ70gJfcoy41Q8rCFhzAUW \
  -u "<<YOUR_SECRET_KEY>>" \
  -H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}" \
  -d percent=20 \
  -d "rolling_release[days_after_charge]=40" \
  -d "rolling_release[expires_on]=1755997558" \
  -d "metadata[test_key]=test_value"
```

### Response

```json
{
  "id": "resplan_61SxxwCbZ70gJfcoy41Q8rCFhzAUW",
  "object": "reserve.plan",
  "created": 1753405164,
  "created_by": "application",
  "currency": "usd",
  "disabled_at": null,
  "livemode": false,
  "metadata": {
    "test_key": "test_value"
  },
  "percent": 20,
  "rolling_release": {
    "days_after_charge": 40,
    "expires_on": 1755997675
  },
  "status": "active",
  "type": "rolling_release"
}
```

## Returns

Returns the updated ReservePlan object.

## Parameters

- `id` (string, required)
  The identifier of the ReservePlan to update.

- [`fixed_release`](https://docs.stripe.com/api/reserve/plan/update.md?query=fixed_release) (object, optional)
  When to release all funds for a fixed release ReservePlan.

- `metadata` (map, optional)
  Set of [key-value pairs](https://docs.stripe.com/docs/api/metadata.md) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.

- `percent` (integer, optional)
  The percentage of each Charge to reserve.

- [`rolling_release`](https://docs.stripe.com/api/reserve/plan/update.md?query=rolling_release) (object, optional)
  How long to hold reserves for a rolling release ReservePlan.
