---
title: "Changes to Updates an subscriptions"
method: PUT
path: "/api/v1/subscriptions/{id}"
---

# Changes to Updates an subscriptions

`PUT /api/v1/subscriptions/{id}`

> Every recorded change to this operation, newest first.
> 110 revisions in range; 1 not diffed.

## Timeline

Changed in 10 of 110 revisions.

- **2026-04-20** `69a36036d334`: 1 info
- **2024-06-06** `8e82a2bd77e0`: 1 breaking, 2 info
- **2024-06-05** `e61df65649e2`: 1 breaking, 2 warning
- **2024-03-07** `71171a40d629`: 5 breaking, 31 info
- **2024-02-18** `88bbc1f38ff7`: 5 breaking, 32 warning
- **2024-02-10** `4ad0fff44c6c`: 4 info
- **2024-01-24** `9dab078a46b5`: 1 info
- **2024-01-20** `70cd94370516`: 1 breaking
- **2023-07-08** `627936439128`: 4 breaking
- **2023-02-18** `ab767c581aef`: 2 info

## Changes

- **2026-04-20** `69a36036d334`: 1 info
  - the response optional property `id` became read-only for the status `200`
- **2024-06-06** `8e82a2bd77e0`: 1 breaking, 2 info
  - the response's body type changed from no type to `object` for status `default`
  - added the optional property `code` to the response with the `default` status
  - added the optional property `message` to the response with the `default` status
- **2024-06-05** `e61df65649e2`: 1 breaking, 2 warning
  - the response's body type changed from `object` to no type for status `default`
  - removed the optional property `code` from the response with the `default` status
  - removed the optional property `message` from the response with the `default` status
- **2024-03-07** `71171a40d629`: 5 breaking, 31 info
  - the response's body type changed from no type to `object` for status `200`
  - the response's body type changed from no type to `object` for status `401`
  - the response's body type changed from no type to `object` for status `403`
  - the response's body type changed from no type to `object` for status `422`
  - the response's body type changed from no type to `object` for status `default`
  - added the optional property `allow_cancellation` to the response with the `200` status
  - added the optional property `allow_plan_changes` to the response with the `200` status
  - added the optional property `allow_query_overrides` to the response with the `200` status
  - added the optional property `archived_at` to the response with the `200` status
  - added the optional property `auto_bill` to the response with the `200` status
  - added the optional property `code` to the response with the `default` status
  - added the optional property `created_at` to the response with the `200` status
  - added the optional property `currency_id` to the response with the `200` status
  - added the optional property `errors` to the response with the `403` status
  - added the optional property `errors` to the response with the `422` status
  - added the optional property `frequency_id` to the response with the `200` status
  - added the optional property `id` to the response with the `200` status
  - added the optional property `is_amount_discount` to the response with the `200` status
  - added the optional property `is_deleted` to the response with the `200` status
  - added the optional property `is_recurring` to the response with the `200` status
  - added the optional property `max_seats_limit` to the response with the `200` status
  - added the optional property `message` to the response with the `401` status
  - added the optional property `message` to the response with the `403` status
  - added the optional property `message` to the response with the `422` status
  - added the optional property `message` to the response with the `default` status
  - added the optional property `per_seat_enabled` to the response with the `200` status
  - added the optional property `product_id` to the response with the `200` status
  - added the optional property `promo_code` to the response with the `200` status
  - added the optional property `promo_discount` to the response with the `200` status
  - added the optional property `recurring_invoice_id` to the response with the `200` status
  - added the optional property `refund_period` to the response with the `200` status
  - added the optional property `trial_duration` to the response with the `200` status
  - added the optional property `trial_enabled` to the response with the `200` status
  - added the optional property `updated_at` to the response with the `200` status
  - added the optional property `user_id` to the response with the `200` status
  - added the optional property `webhook_configuration` to the response with the `200` status
- **2024-02-18** `88bbc1f38ff7`: 5 breaking, 32 warning
  - the response's body type changed from `object` to no type for status `200`
  - the response's body type changed from `object` to no type for status `401`
  - the response's body type changed from `object` to no type for status `403`
  - the response's body type changed from `object` to no type for status `422`
  - the response's body type changed from `object` to no type for status `default`
  - removed the optional property `allow_cancellation` from the response with the `200` status
  - removed the optional property `allow_plan_changes` from the response with the `200` status
  - removed the optional property `allow_query_overrides` from the response with the `200` status
  - removed the optional property `archived_at` from the response with the `200` status
  - removed the optional property `auto_bill` from the response with the `200` status
  - removed the optional property `code` from the response with the `default` status
  - removed the optional property `company_id` from the response with the `200` status
  - removed the optional property `created_at` from the response with the `200` status
  - removed the optional property `currency_id` from the response with the `200` status
  - removed the optional property `errors` from the response with the `403` status
  - removed the optional property `errors` from the response with the `422` status
  - removed the optional property `frequency_id` from the response with the `200` status
  - removed the optional property `id` from the response with the `200` status
  - removed the optional property `is_amount_discount` from the response with the `200` status
  - removed the optional property `is_deleted` from the response with the `200` status
  - removed the optional property `is_recurring` from the response with the `200` status
  - removed the optional property `max_seats_limit` from the response with the `200` status
  - removed the optional property `message` from the response with the `401` status
  - removed the optional property `message` from the response with the `403` status
  - removed the optional property `message` from the response with the `422` status
  - removed the optional property `message` from the response with the `default` status
  - removed the optional property `per_seat_enabled` from the response with the `200` status
  - removed the optional property `product_id` from the response with the `200` status
  - removed the optional property `promo_code` from the response with the `200` status
  - removed the optional property `promo_discount` from the response with the `200` status
  - removed the optional property `recurring_invoice_id` from the response with the `200` status
  - removed the optional property `refund_period` from the response with the `200` status
  - removed the optional property `trial_duration` from the response with the `200` status
  - removed the optional property `trial_enabled` from the response with the `200` status
  - removed the optional property `updated_at` from the response with the `200` status
  - removed the optional property `user_id` from the response with the `200` status
  - removed the optional property `webhook_configuration` from the response with the `200` status
- **2024-02-10** `4ad0fff44c6c`: 4 info
  - added the media type `application/json` for the response with the status `401`
  - added the media type `application/json` for the response with the status `403`
  - added the media type `application/json` for the response with the status `422`
  - added the media type `application/json` for the response with the status `default`
- **2024-01-24** `9dab078a46b5`: 1 info
  - endpoint added
- **2024-01-20** `70cd94370516`: 1 breaking
  - api path removed without deprecation
- **2023-07-08** `627936439128`: 4 breaking
  - removed the media type `application/json` for the response with the status `401`
  - removed the media type `application/json` for the response with the status `403`
  - removed the media type `application/json` for the response with the status `422`
  - removed the media type `application/json` for the response with the status `default`
- **2023-02-18** `ab767c581aef`: 2 info
  - added the non-success response with the status `401`
  - added the non-success response with the status `403`

---

[Operation](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/docs/api/v1/subscriptions/:id/put.md) - [API](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference.md) - [Page](https://skmtc.dev/invoiceninja/apis/invoice-ninja-api-reference/changes/api/v1/subscriptions/:id/put)
