---
title: "Partial update product"
method: PATCH
path: "/products/{id}/"
tags: ["Billing"]
---

# Partial update product

`PATCH /products/{id}/`

## Request body

- Product
  - `id` string
  - `name` string, required
  - `unit_label` string, required
  - `status` 'active' | 'archived'
  - `archived` string, date-time, nullable
  - `plans` Plan[]
    - `id` string
    - `product` string, required — Product ID.
    - `sku` string, nullable
    - `name` string, required
    - `description` string, required
    - `frequency` string, required — Frequency ID (e.g. `monthly`).
    - `currency` string, required — ISO currency code.
    - `amount` number, required
    - `exempt` boolean
    - `usage_scheme` 'licensed' | 'metered'
    - `usage_aggregation` 'last_record' | 'max' | 'sum', nullable
    - `tiers_mode` 'package' | 'volume' | 'graduated' | 'package_overage' | 'unit' | 'range', nullable — Pricing mode for tiered plans. `unit` and `range` are deprecated aliases of `volume` and `package` respectively.
    - `tiers` PlanTier[]
      - `amount` number, required
      - `amount_scheme` 'flat' | 'per_unit'
      - `quantity_from` integer, required
      - `quantity_to` integer, nullable
      - `unit_scheme` 'all_units' | 'tier_units' | 'overage', nullable
    - `unit_label` string, nullable
    - `status` 'active' | 'archived'
    - `archived` string, date-time, nullable
    - `created` string, date-time
    - `updated` string, date-time
  - `test_mode` boolean
  - `created` string, date-time
  - `updated` string, date-time

## Response `200`

Updated product.

- Product
  - `id` string
  - `name` string, required
  - `unit_label` string, required
  - `status` 'active' | 'archived'
  - `archived` string, date-time, nullable
  - `plans` Plan[]
    - `id` string
    - `product` string, required — Product ID.
    - `sku` string, nullable
    - `name` string, required
    - `description` string, required
    - `frequency` string, required — Frequency ID (e.g. `monthly`).
    - `currency` string, required — ISO currency code.
    - `amount` number, required
    - `exempt` boolean
    - `usage_scheme` 'licensed' | 'metered'
    - `usage_aggregation` 'last_record' | 'max' | 'sum', nullable
    - `tiers_mode` 'package' | 'volume' | 'graduated' | 'package_overage' | 'unit' | 'range', nullable — Pricing mode for tiered plans. `unit` and `range` are deprecated aliases of `volume` and `package` respectively.
    - `tiers` PlanTier[]
      - `amount` number, required
      - `amount_scheme` 'flat' | 'per_unit'
      - `quantity_from` integer, required
      - `quantity_to` integer, nullable
      - `unit_scheme` 'all_units' | 'tier_units' | 'overage', nullable
    - `unit_label` string, nullable
    - `status` 'active' | 'archived'
    - `archived` string, date-time, nullable
    - `created` string, date-time
    - `updated` string, date-time
  - `test_mode` boolean
  - `created` string, date-time
  - `updated` string, date-time

---

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