---
title: "Patch subscriptions"
method: PATCH
path: "/subscriptions"
tags: ["Subscriptions"]
---

# Patch subscriptions

`PATCH /subscriptions`

Partially update one or more existing subscriptions.

## Headers

- `api-token` string, required

## Request body

- SubscriptionPatchReq
  - `subscriptions` BaseSubscriptionPatch[]
    - `id` integer, required — The id of the subscription
    - `status` 'active' | 'paused' | 'cancelled' | 'term_ending' | 'term_ended'
    - `dateActivated` string — The date (in YYYY-MM-DD format) on which the subscription activates. Any free trial applied to the subscription begins on this date and this date determines when the first recurring billing date occurs. Note the provided date must occur after the current date.
    - `recurringAmount` number, float — The recurring amount charged each cycle for the subscription. The value can differ from the payment plan if desired.
    - `hasFreeTrialPeriod` boolean — Toggle indicating whether to apply the payment plan free trial period to the subscription. The free trial cannot be edited if the subscription has already commenced recurring billing, or if the subscription status is being altered within the same request.
    - `maxCycles` integer — The number of cycles the subscription will bill before ending. This field is only applicable for expiring subscriptions. The max cycle can be either increased or decreased. If decreased it can only be reduced up to and including the number of times the subscription was billed.

## Response `200`

Successful subscription patch. The response body contains the data representation of all updated  subscriptions. Any payments altered as part of the update will be included with their associated subscription.

- SubscriptionPatchRes
  - `data` BaseSubscription[]
    - `id` integer
    - `dateCreated` string, date-time
    - `dateUpdated` string, date-time
    - `dateActivated` string, date
    - `dateBilling` string, date
    - `status` string
    - `paymentPlanId` integer
    - `customerCode` string
    - `timesBilled` integer
    - `setupAmount` number, float
    - `recurringAmount` number, float
    - `freeTrialPeriod` integer
    - `maxCycles` integer
    - `hasFailedPayments` string
    - `addOnIds` integer[]

## Other responses

- `400` — You are initiating a request with invalid parameter and/or body values.
- `401` — You are not authorized to access this resource. Please ensure that you are authenticated, and that you are using the `api-token` header
- `403` — You do not have permission to access this resource. Please ensure you are both authenticated and that you have the required roles/permissions active.
- `500` — Helcim internal server error encountered.

---

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