> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nexudus.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Contract Pause Metadata

# Get Contract Pause Metadata

Returns metadata about the pause eligibility and state of a given contract. Use this endpoint before presenting the pause flow to the customer to determine whether pausing is possible, what the earliest pause date is, available pause-until options, and any applicable terms and conditions.

## Authentication

This endpoint requires an authenticated customer session.

## Path Parameters

<ParamField path="contractId" type="number" required>
  The unique identifier of the contract.
</ParamField>

## Response

Returns a `PauseContractMeta` object.

<ResponseField name="CanBePausedNow" type="boolean">
  Whether the contract is currently eligible to be paused.
</ResponseField>

<ResponseField name="IsPausedNow" type="boolean">
  Whether the contract is already actively paused.
</ResponseField>

<ResponseField name="InPausedPeriod" type="boolean">
  Whether the current date falls within an existing scheduled pause period.
</ResponseField>

<ResponseField name="InPausedPeriodFrom" type="string">
  Local datetime from which the current pause period starts (if in one).
</ResponseField>

<ResponseField name="InPausedPeriodFromUtc" type="string">
  UTC datetime from which the current pause period starts.
</ResponseField>

<ResponseField name="InPausedPeriodUntil" type="string">
  Local datetime at which the current pause period ends.
</ResponseField>

<ResponseField name="InPausedPeriodUntilUtc" type="string">
  UTC datetime at which the current pause period ends.
</ResponseField>

<ResponseField name="CurrentPeriodStart" type="string">
  ISO 8601 date for the start of the current billing period.
</ResponseField>

<ResponseField name="CurrentPeriodStartUtc" type="string">
  UTC version of the current billing period start.
</ResponseField>

<ResponseField name="InProratePeriod" type="boolean">
  Whether the contract is currently within a pro-rata period (affects pause timing).
</ResponseField>

<ResponseField name="RenewalDate" type="string">
  ISO 8601 date of the next scheduled renewal.
</ResponseField>

<ResponseField name="PauseCyclesLimit" type="number">
  Maximum number of billing cycles that can be paused (if restricted). `null` means unlimited.
</ResponseField>

<ResponseField name="PauseYearlyLimit" type="number">
  Maximum number of months that can be paused per year (if restricted). `null` means unlimited.
</ResponseField>

<ResponseField name="PausedPeriodsCount" type="number">
  Number of pause periods already used by this contract.
</ResponseField>

<ResponseField name="ProrateDaysBefore" type="number">
  Number of days before the renewal where pro-rata charges apply.
</ResponseField>

<ResponseField name="PauseUntilOptions" type="array">
  Array of ISO 8601 date strings representing the available pause end dates the customer can select from.
</ResponseField>

<ResponseField name="TermsAndConditions" type="string">
  HTML or plain text for the pause terms and conditions that should be shown to and accepted by the customer before pausing.
</ResponseField>

## Example Response

```json theme={null}
{
  "CanBePausedNow": true,
  "IsPausedNow": false,
  "InPausedPeriod": false,
  "InPausedPeriodFrom": null,
  "InPausedPeriodFromUtc": null,
  "InPausedPeriodUntil": null,
  "InPausedPeriodUntilUtc": null,
  "CurrentPeriodStart": "2025-10-01",
  "CurrentPeriodStartUtc": "2025-10-01T00:00:00Z",
  "InProratePeriod": false,
  "RenewalDate": "2025-11-01",
  "PauseCyclesLimit": null,
  "PauseYearlyLimit": 3,
  "PausedPeriodsCount": 0,
  "ProrateDaysBefore": 5,
  "PauseUntilOptions": ["2025-11-01", "2025-12-01", "2026-01-01"],
  "TermsAndConditions": "<p>By pausing your plan you agree to...</p>"
}
```

## Usage in Portal

Fetched at the start of the pause flow to determine UI state and options presented to the customer.

* File: `src/views/user/plans/useContractPauseMeta.ts`
* Used by: `src/views/user/plans/components/PauseContractModal.tsx`

### Typical integration pattern

```ts theme={null}
// From src/api/endpoints.ts
// endpoints.billing.contracts.pauseMmeta = (contractId: number) => ({
//   url: `/api/public/billing/coworkerContracts/${contractId}/pause/meta`,
//   type: null as unknown as PauseContractMeta,
// })

// Usage in React
const endpoint = endpoints.billing.contracts.pauseMmeta(contractId)
const { resource: pauseMeta } = useData<typeof endpoint.type>(httpClient, endpoint.url)
```

## Related Endpoints

* `GET /api/public/billing/coworkerContracts/{contractId}` – Get full contract details
* `PUT /api/public/billing/coworkerContracts/v2/{contractId}/pause` – Submit a pause request
* `GET /api/public/billing/coworkerContracts/pause/bookings` – Check bookings affected by the pause period

## Error Responses

<ResponseField name="401 Unauthorized" type="error">
  The current user is not authenticated or does not have access to this contract.
</ResponseField>

<ResponseField name="404 Not Found" type="error">
  Contract with the specified ID does not exist.
</ResponseField>
