Get Contract Details
Retrieves a single plan contract for the currently authenticated customer. Contracts represent the customer’s active plan subscription, including pricing, billing cycle, renewal dates, and pause/cancellation state.
Authentication
This endpoint requires an authenticated customer session. The contract must belong to the current customer or to a team the customer manages.
Path Parameters
The unique identifier of the contract to retrieve.
Query Parameters
Comma-separated list of field paths to include in the response. When provided, only the
specified fields are returned — useful for reducing payload size. Supports nested paths
using dot notation. Example: _shape=Tariff.Name,Price,PriceFormatted,Active,StartDate,RenewalDate.
Response
Returns a CoworkerContract object.
Plan & Pricing
ID of the plan associated with this contract.
Display name of the plan.
Current monthly (or per-cycle) price.
Pre-formatted price string (e.g. "$199.00").
Price that will be charged from the next renewal.
Pre-formatted next renewal price.
Number of units (e.g., desks) covered by this contract.
Dates & Billing
ISO 8601 date the contract started.
ISO 8601 date of the next billing renewal.
UTC version of the renewal date.
Day of the month on which the contract is billed.
The earliest date the contract can be cancelled without penalty.
ISO 8601 date when the contract was cancelled (if applicable).
The absolute final date the contract will end (if applicable).
Status Flags
Whether the contract is currently active.
Whether the contract has been cancelled.
Whether this is the customer’s primary contract.
Whether the contract is in a paused state.
Whether the contract is actively paused at the current moment.
Whether the contract is eligible to be paused right now.
Whether the current date falls within a scheduled pause period.
UTC datetime from which the pause period begins.
UTC datetime at which the pause period ends.
Terms & Deposits
Whether the customer has accepted the plan’s terms and conditions.
ISO 8601 datetime when terms were accepted.
Total deposit amount held against this contract.
Pre-formatted deposit amount string.
System Fields
Unique identifier of the contract.
Globally unique identifier of the contract.
ISO 8601 datetime when the contract was created (local time).
ISO 8601 datetime when the contract was last updated (local time).
Example Response
{
"Id": 5001,
"UniqueId": "c7d8e9f0-1234-5678-abcd-ef0987654321",
"TariffId": 12,
"TariffName": "Hot Desk Monthly",
"Price": 199.0,
"PriceFormatted": "$199.00",
"NextPrice": 199.0,
"NextPriceFormatted": "$199.00",
"CurrencyCode": "USD",
"Quantity": 1,
"StartDate": "2025-01-01",
"RenewalDate": "2025-11-01",
"BillingDay": 1,
"EarliestCancellationDate": "2025-12-01",
"Active": true,
"Cancelled": false,
"MainContract": true,
"IsPaused": false,
"IsPausedNow": false,
"CanBePausedNow": true,
"PricePlanTermsAccepted": true,
"DepositsAmount": 0,
"CreatedOn": "2025-01-01T09:00:00",
"UpdatedOn": "2025-09-15T14:30:00"
}
Usage in Portal
This endpoint is used in the My Plans section to display full contract details.
- File:
src/views/user/plans/useContractData.ts
Typical integration pattern
// From src/api/endpoints.ts
// endpoints.billing.contracts.one = (contractId: number) => ({
// url: `/api/public/billing/coworkerContracts/${contractId}`,
// type: null as unknown as CoworkerContract,
// })
// Usage in React
const endpoint = useMemo(() => endpoints.billing.contracts.one(contractId), [contractId])
const { resource: contract } = useData<typeof endpoint.type>(httpClient, endpoint.url)
GET /api/public/billing/coworkerContracts/{contractId}/pause/meta – Get pause eligibility metadata
PUT /api/public/billing/coworkerContracts/v2/{contractId}/pause – Pause a contract
PUT /api/public/billing/coworkerContracts/v2/{contractId}/resume – Resume a paused contract
Error Responses
The current user is not authenticated or the contract is not accessible to them.
Contract with the specified ID does not exist.