---
title: "Update a plan"
method: PATCH
path: "/api/plans/{id}"
tags: ["Plans"]
---

# Update a plan

`PATCH /api/plans/{id}`

Update plan details like name, description, features, or billing interval.

## Path parameters

- `id` string, required

## Request body

- UpdatePlanDto
  - `name` string
  - `description` string
  - `billingInterval` 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'YEARLY'
  - `billingTiming` 'IN_ADVANCE' | 'IN_ARREARS' — When to charge: IN_ADVANCE or IN_ARREARS
  - `features` string[]
  - `isActive` boolean
  - `netPaymentTerms` number — Net payment terms in days
  - `invoiceGracePeriodDays` number — Grace period in days before draft invoices are finalized
  - `progressiveBillingThreshold` number — Usage cost threshold for progressive billing

## Response `200`

Plan updated

- PlanResponse
  - `id` string, required
  - `name` string, required
  - `code` string, required
  - `description` string
  - `billingInterval` 'HOURLY' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'YEARLY', required
  - `features` string[]
  - `isActive` boolean, required
  - `billingTiming` 'IN_ADVANCE' | 'IN_ARREARS', required
  - `minimumCommitment` string — Minimum commitment amount
  - `prices` PlanPriceResponse[], required
    - `id` string, required
    - `planId` string, required
    - `currency` string, required
    - `amount` string, required — Decimal amount as string
    - `isActive` boolean, required
    - `createdAt` string, required
    - `updatedAt` string, required
  - `createdAt` string, required
  - `updatedAt` string, required

## Other responses

- `404` — Plan not found

---

[API](https://skmtc.net/novabilling/apis/novabilling-api.md) · [All operations](https://skmtc.net/novabilling/apis/novabilling-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/novabilling/novabilling-api/versions/0e449a4e0dc8/schema)
