---
title: "Pause a Subscription"
method: POST
path: "/v1/subscriptions/{id}/pause"
---

# Pause a Subscription

`POST /v1/subscriptions/{id}/pause`

This API pauses an active subscription for a specific duration and unit. The allowed pause unit depends on the subscription plan interval: day plans allow days, week plans allow weeks, month plans allow months, and year plans allow years. When the pause is applied, the subscription status is changed to paused, pause timestamps are stored, and current_period_end is recalculated to the next charge date after the pause.

## Path parameters

- `id` string, required

## Headers

- `Accept` string, required
- `Content-Type` string, required

## Request body

- object
  - `duration` integer, required — Pause duration value. Minimum is 1. Maximum allowed values are enforced server-side based on the selected unit: 365 for days, 52 for weeks, 12 for months, and 1 for years.
  - `unit` 'days' | 'weeks' | 'months' | 'years', required — Pause duration unit. Allowed values are days, weeks, months, and years. Business rules may further restrict the allowed value based on the subscription plan interval.

## Response `200`

200

- object
  - `data` object
    - `object` string
    - `id` string
    - `customer_id` string
    - `application_fee_percent` number, nullable
    - `billing_type` integer
    - `payment_due_days` integer, nullable
    - `cancel_at_period_end` integer
    - `canceled_at` integer, nullable
    - `current_period_end` integer, nullable
    - `current_period_start` integer, nullable
    - `days_until_due` integer, nullable
    - `plan_ref` string
    - `start_at` integer, nullable
    - `end_at` integer, nullable
    - `status` 'active' | 'trial' | 'pending' | 'passed_due' | 'paused' | 'unpaid' | 'canceled'
    - `tax_percent` number
    - `trial_end` integer, nullable
    - `trial_days` integer
    - `trial_start` integer, nullable
    - `created_at` integer, nullable
    - `updated_at` integer, nullable
    - `description` string, nullable
    - `payment_type` string, nullable
    - `paused_at` integer, nullable
    - `pause_end_at` integer, nullable
    - `resumed_at` integer, nullable
    - `pause_units_allowed` string[]
    - `plan` object
      - `data` object
        - `object` string
        - `plan_id` string
        - `amount` integer
        - `interval` string
        - `interval_count` integer
        - `name` string
        - `plan_description` string, nullable
        - `statement_descriptor` string, nullable
        - `trial_period_days` union
          - string
          - integer
        - `currency` string
        - `created_at` integer, nullable
        - `updated_at` integer, nullable
  - `meta` object
    - `include` string[]
    - `custom` unknown[]
      - unknown

## Other responses

- `404` — 404
- `422` — 422
- `500` — 500

---

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