> ## Documentation Index
> Fetch the complete documentation index at: https://omniflow-vpn.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Post v1panelcustomers subscriptions pause

> Requires subscriptions.write and an operator reason. Suspends access without spending the subscription's remaining days: the Remnawave user is disabled and the entitlement's clock stops, in one transaction.
This is what `disable` is not. A disabled subscription keeps running out while the customer cannot use it; a paused one does not. The remaining days are measured from the pause instant on both customer surfaces, so the figure a customer reads stops moving.
There is no customer-facing equivalent, deliberately: a pause turns a dated entitlement into an indefinite one, and letting the holder decide when the clock runs would make "thirty days" mean "thirty days of my choosing, forever".
409 when the subscription is not active or limited — including when it is already paused, which is what makes a double-submitted button harmless.



## OpenAPI

````yaml https://raw.githubusercontent.com/kewldan/omniflow/main/api/openapi.yaml post /v1/panel/customers/{customerID}/subscriptions/{subscriptionID}/pause
openapi: 3.0.3
info:
  title: Omniflow API
  version: 1.0.0
  description: >-
    Customer, commerce, payment, wallet, fulfillment, and operations API for
    Omniflow.
servers: []
security: []
paths:
  /v1/panel/customers/{customerID}/subscriptions/{subscriptionID}/pause:
    post:
      tags:
        - panel
      description: >-
        Requires subscriptions.write and an operator reason. Suspends access
        without spending the subscription's remaining days: the Remnawave user
        is disabled and the entitlement's clock stops, in one transaction.

        This is what `disable` is not. A disabled subscription keeps running out
        while the customer cannot use it; a paused one does not. The remaining
        days are measured from the pause instant on both customer surfaces, so
        the figure a customer reads stops moving.

        There is no customer-facing equivalent, deliberately: a pause turns a
        dated entitlement into an indefinite one, and letting the holder decide
        when the clock runs would make "thirty days" mean "thirty days of my
        choosing, forever".

        409 when the subscription is not active or limited — including when it
        is already paused, which is what makes a double-submitted button
        harmless.
      operationId: pausePanelSubscription
      parameters:
        - in: path
          name: customerID
          required: true
          schema:
            type: string
            format: uuid
        - in: path
          name: subscriptionID
          required: true
          schema:
            type: string
            format: uuid
        - $ref: '#/components/parameters/CSRFToken'
        - $ref: '#/components/parameters/OperatorReason'
      responses:
        '202':
          description: Queued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PanelSubscriptionOperationAccepted'
        '403':
          $ref: '#/components/responses/Problem'
        '409':
          $ref: '#/components/responses/Problem'
        '422':
          $ref: '#/components/responses/Problem'
components:
  parameters:
    CSRFToken:
      in: header
      name: X-CSRF-Token
      required: true
      description: >-
        Echoes the token from the current session. Required on every unsafe
        method.
      schema:
        type: string
    OperatorReason:
      in: header
      name: X-Operator-Reason
      required: true
      description: >-
        Why the change is being made. Carried as a header because almost every
        operations mutation needs one; the API refuses a change that requires a
        reason and did not get one.
      schema:
        type: string
        minLength: 1
        maxLength: 400
  schemas:
    PanelSubscriptionOperationAccepted:
      type: object
      required:
        - operationId
        - operation
        - status
      properties:
        operationId:
          type: string
          format: uuid
        operation:
          type: string
        status:
          type: string
    Problem:
      type: object
      required:
        - type
        - title
        - status
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        request_id:
          type: string
  responses:
    Problem:
      description: Request failed
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.