# Update Plan

**Method:** `PATCH`

**Path:** `/ps/api/v1/public/plans/{plan_id}`

**Category:** Subscriptions - Plans

**Authentication:** Required

## Description

Updates an existing subscription plan. Existing subscriptions under
this plan will remain unaffected. The changes will apply only to
new subscriptions created under this plan.


## Path Parameters

- `plan_id` (`string`) **required** — Unique identifier for the subscription plan.

## Request Body

Content-Type: `application/json`

- `plan_name` (`string`) — Subscription plan name.
- `plan_description` (`string`) — Corresponding description for a plan.
- `amount` (`object`) — Monetary amount with currency for subscription-related APIs.
  - `value` (`integer`) **required** — Amount in the smallest currency unit (paisa for INR). Minimum ₹1 (100), maximum ₹10 lakh (100000000).
  - `currency` (`string`) **required** — Three-letter ISO 4217 currency code.

- `max_limit_amount` (`object`) — Monetary amount with currency for subscription-related APIs.
  - `value` (`integer`) **required** — Amount in the smallest currency unit (paisa for INR). Minimum ₹1 (100), maximum ₹10 lakh (100000000).
  - `currency` (`string`) **required** — Three-letter ISO 4217 currency code.

- `trial_period_in_days` (`integer`) — Duration of the trial period in days.
- `end_date` (`string`) — The ISO 8601 UTC Timestamp when the subscription plan expires.
- `merchant_metadata` (`object`) — Key-value pairs for additional information. Max 10 pairs, 256 chars each.

### Example Request

```json
{
  "plan_name": "Monthly Plan Updated",
  "plan_description": "Updated plan description",
  "amount": {
    "value": 1000,
    "currency": "INR"
  },
  "max_limit_amount": {
    "value": 1000,
    "currency": "INR"
  },
  "trial_period_in_days": 1,
  "end_date": "2026-10-21T12:02:28Z",
  "merchant_metadata": {
    "key1": "DD"
  }
}
```

## Responses

- `200` — Plan updated successfully.
- `400` — 

### Response Schema

- `plan_id` (`string`) — Unique identifier for the subscription plan in the Pine Labs database.
- `status` (`ACTIVE | INACTIVE | CREATED`) — Status of the plan. - ACTIVE: Plan creation completed and start time has passed. - INACTIVE: Plan is disabled or has exceeded its validity period. - CREATED: Plan creation completed but start time is in the future. 
- `plan_name` (`string`) — Subscription plan name.
- `plan_description` (`string`) — Corresponding description for a plan.
- `frequency` (`Day | Week | Month | Year | Bi-Monthly | Quarterly | Half-Yearly | AS | OT | Not Applicable`) — Frequency of recurring transactions for this particular plan.
- `amount` (`object`) — Monetary amount with currency for subscription-related APIs.
  - `value` (`integer`) **required** — Amount in the smallest currency unit (paisa for INR). Minimum ₹1 (100), maximum ₹10 lakh (100000000).
  - `currency` (`string`) **required** — Three-letter ISO 4217 currency code.

- `max_limit_amount` (`object`) — Monetary amount with currency for subscription-related APIs.
  - `value` (`integer`) **required** — Amount in the smallest currency unit (paisa for INR). Minimum ₹1 (100), maximum ₹10 lakh (100000000).
  - `currency` (`string`) **required** — Three-letter ISO 4217 currency code.

- `trial_period_in_days` (`integer`) — Duration of the trial period in days.
- `start_date` (`string`) — The ISO 8601 UTC Timestamp when the subscription plan is active.
- `end_date` (`string`) — The ISO 8601 UTC Timestamp when the subscription plan expires.
- `merchant_metadata` (`object`) — Key-value pairs for additional information. Max 10 pairs, 256 chars each.
- `merchant_plan_reference` (`string`) — Unique identifier of the merchant plan reference.
- `created_at` (`string,null`) — ISO 8601 UTC Timestamp when the create plan request was received.
- `modified_at` (`string,null`) — ISO 8601 UTC Timestamp when the plan was last updated.
- `initial_debit_amount` (`object`) — Monetary amount with currency for subscription-related APIs.
  - `value` (`integer`) **required** — Amount in the smallest currency unit (paisa for INR). Minimum ₹1 (100), maximum ₹10 lakh (100000000).
  - `currency` (`string`) **required** — Three-letter ISO 4217 currency code.

- `auto_debit_ot` (`string`) — Indicates whether auto-debit is enabled for one-time payments.

### Example Response

```json
{
  "plan_id": "v1-plan-4405071524-aa-qlAtAf",
  "status": "ACTIVE",
  "plan_name": "Monthly Plan",
  "plan_description": "Diwali dhammaka plan intended to attract customers on diwali time",
  "frequency": "Day",
  "amount": {
    "value": 1000,
    "currency": "INR"
  },
  "max_limit_amount": {
    "value": 1000,
    "currency": "INR"
  },
  "trial_period_in_days": 1,
  "start_date": "2022-02-01T17:32:28Z",
  "end_date": "2022-10-21T17:32:28Z",
  "merchant_metadata": {
    "key1": "DD",
    "key2": "XOF"
  },
  "merchant_plan_reference": "1234567890",
  "created_at": "2022-10-21T17:32:28Z",
  "modified_at": "2022-10-21T17:32:28Z",
  "initial_debit_amount": {
    "value": 1000,
    "currency": "INR"
  },
  "auto_debit_ot": "false"
}
```

---

Reference: https://localhost:3000/api/subscriptions-plans/update-plan
