> ## 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 one CoworkerContract

> Retrieve a single CoworkerContract record by its Id.

A **CoworkerContract** is the foundation for automatic billing. It links a customer (`Coworker`) to a plan (`Tariff`) that drives the billing frequency, benefits and default settings for the contract. A customer can hold as many contracts as needed, each pointing to the same or different plans.

A customer with at least one active contract is regarded as a **Member**; customers with no active contracts are **Contacts**. Nexudus uses this distinction to enforce policies on products, resources, events, pricing and many other entities that expose `OnlyForMembers` or `OnlyForContacts` properties.

**Pricing** — The contract price can be fixed (`Price` is not null) or derived from the plan it is for. The `Value` field is used in reporting to compare with the actual price. Automatic price adjustments over time can be set up via `ContractSchedule` child entities.

**Billing cycle** — `RenewalDate` is the date on which the contract will next be automatically invoiced; it advances automatically each time the contract is invoiced. `InvoicedPeriod` is the period the next invoice will cover. For a new contract these two dates are usually the same. If `Tariff.AdvanceInvoiceCycles` is greater than 1, Nexudus invoices several periods in one go the first time, pushing `InvoicedPeriod` ahead of `RenewalDate` from the first invoice onwards. When the contract is cancelled, Nexudus stops invoicing once `InvoicedPeriod` reaches the cancellation date.

**Benefits** — The plan may include benefits (booking credits, time passes, etc.) which are released and assigned to the contract-holder customer based on the contract cycle or other expiration criteria (month, week, day, etc.).

**Cancellation** — Contracts support minimum contract length (`ContractTerm`), cancellation policies (`CancellationLimitDays`, `ProRateCancellation`) and cancellation reasons. `CancelTeamContracts` can cascade cancellation to team members.

**Additional charges** — Contracts can optionally include products (`ContractProduct` entities) to be billed alongside the plan, as well as security deposits/retainers (`ContractDeposit` entities).

## Authentication

<Note>
  This endpoint requires OAuth2 authentication. Include a valid bearer token in the `Authorization` header.
  The authenticated user must be a full unrestricted administrator or have the **`CoworkerContract-Read`** role.
</Note>

## Path Parameters

<ParamField path="id" type="integer" required>
  The Id of the CoworkerContract record to retrieve.
</ParamField>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET \
    "https://spaces.nexudus.com/api/billing/coworkercontracts/87654321" \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://spaces.nexudus.com/api/billing/coworkercontracts/87654321',
    {
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN'
      }
    }
  );

  const record = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://spaces.nexudus.com/api/billing/coworkercontracts/87654321',
      headers={
          'Authorization': 'Bearer YOUR_TOKEN'
      }
  )

  record = response.json()
  ```
</CodeGroup>

## Response

### 200

<ResponseField name="IssuedById" type="integer">
  Issued By Id.
</ResponseField>

<ResponseField name="IssuedByName" type="string">
  Name of the business issuing this contract.
</ResponseField>

<ResponseField name="CoworkerId" type="integer">
  Coworker Id.
</ResponseField>

<ResponseField name="CoworkerCoworkerType" type="string">
  Coworker Coworker Type.
</ResponseField>

<ResponseField name="CoworkerFullName" type="string">
  Full name of the customer holding this contract.
</ResponseField>

<ResponseField name="CoworkerCompanyName" type="string">
  Company name of the customer holding this contract.
</ResponseField>

<ResponseField name="CoworkerBillingName" type="string">
  Billing name of the customer holding this contract.
</ResponseField>

<ResponseField name="CoworkerEmail" type="string">
  Email address of the customer holding this contract.
</ResponseField>

<ResponseField name="CoworkerActive" type="boolean">
  Coworker Active.
</ResponseField>

<ResponseField name="TariffId" type="integer">
  Tariff Id.
</ResponseField>

<ResponseField name="TariffName" type="string">
  Name of the plan this contract is for.
</ResponseField>

<ResponseField name="TariffInvoiceEvery" type="integer">
  Tariff Invoice Every.
</ResponseField>

<ResponseField name="TariffInvoiceEveryWeeks" type="integer">
  Tariff Invoice Every Weeks.
</ResponseField>

<ResponseField name="TariffPrice" type="number">
  Default price of the plan. Used when the contract has no fixed Price override.
</ResponseField>

<ResponseField name="TariffCurrencyCode" type="string">
  Currency code of the plan.
</ResponseField>

<ResponseField name="NextTariffId" type="integer">
  Next Tariff Id.
</ResponseField>

<ResponseField name="NextTariffName" type="string">
  Name of the next plan the contract will switch to.
</ResponseField>

<ResponseField name="Notes" type="string">
  Free-text notes for this contract.
</ResponseField>

<ResponseField name="StartDate" type="string">
  Contract start date.
</ResponseField>

<ResponseField name="BillingDay" type="integer">
  Day of month on which billing occurs.
</ResponseField>

<ResponseField name="RenewalDate" type="string">
  Date on which the contract will next be automatically invoiced. Updated automatically every time the contract is invoiced, advancing by the plan's renewal period.
</ResponseField>

<ResponseField name="InvoicedPeriod" type="string">
  Period the next invoice will cover. For new contracts this equals RenewalDate. If Tariff.AdvanceInvoiceCycles > 1, Nexudus invoices several periods at once on the first invoice, pushing InvoicedPeriod ahead of RenewalDate. Nexudus stops invoicing when InvoicedPeriod reaches the cancellation date.
</ResponseField>

<ResponseField name="ContractTerm" type="string">
  Minimum contract length end date. Defines the earliest date at which the contract can be cancelled without penalty.
</ResponseField>

<ResponseField name="Price" type="number">
  Fixed price override for this contract. If null, the contract uses the plan's default price (TariffPrice).
</ResponseField>

<ResponseField name="Value" type="number">
  Contract value used in reporting to compare against the actual invoiced price.
</ResponseField>

<ResponseField name="Desks" type="integer[]">
  Desks.
</ResponseField>

<ResponseField name="Variants" type="integer[]">
  Variants.
</ResponseField>

<ResponseField name="Quantity" type="integer">
  Quantity.
</ResponseField>

<ResponseField name="Active" type="boolean">
  Whether the contract is active. Active contracts make the customer a Member; inactive contracts make them a Contact.
</ResponseField>

<ResponseField name="MainContract" type="boolean">
  Whether this is the customer's main contract. The main contract drives the customer's primary plan assignment.
</ResponseField>

<ResponseField name="Cancelled" type="boolean">
  Whether this contract has been cancelled.
</ResponseField>

<ResponseField name="PurchaseOrder" type="string">
  Purchase order.
</ResponseField>

<ResponseField name="IncludeSignupFee" type="boolean">
  Whether to include the plan's signup fee when creating this contract.
</ResponseField>

<ResponseField name="InvoiceAdvancedCycles" type="boolean">
  Whether to invoice multiple billing cycles in advance on the first invoice, as configured by Tariff.AdvanceInvoiceCycles.
</ResponseField>

<ResponseField name="ApplyProRating" type="boolean">
  Whether to pro-rate the first invoice based on the contract start date relative to the billing cycle.
</ResponseField>

<ResponseField name="NextAutoInvoice" type="string">
  Date of the next automatic invoice generation for this contract.
</ResponseField>

<ResponseField name="PricePlanTermsAccepted" type="boolean">
  Whether the customer has accepted the plan's terms and conditions.
</ResponseField>

<ResponseField name="PricePlanTermsAcceptedOn" type="string">
  Date on which the customer accepted the plan's terms and conditions.
</ResponseField>

<ResponseField name="CancellationDate" type="string">
  Date on which the contract will be cancelled. Nexudus stops invoicing when InvoicedPeriod reaches this date.
</ResponseField>

<ResponseField name="CancellationLimitDays" type="integer">
  Minimum number of days' notice required before cancellation takes effect.
</ResponseField>

<ResponseField name="ProRateCancellation" type="boolean">
  Whether to pro-rate the final invoice when the contract is cancelled mid-cycle.
</ResponseField>

<ResponseField name="CancelTeamContracts" type="boolean">
  Whether to cascade cancellation to contracts of team members under this customer.
</ResponseField>

<ResponseField name="CancellationReason" type="integer">
  Reason for cancellation.
</ResponseField>

<ResponseField name="CancellationNotes" type="string">
  Free-text notes about the cancellation.
</ResponseField>

<ResponseField name="DeliveryHandlingPreferenceChecks" type="integer">
  Delivery handling preference for checks.
</ResponseField>

<ResponseField name="DeliveryHandlingPreferenceMail" type="integer">
  Delivery handling preference for mail.
</ResponseField>

<ResponseField name="DeliveryHandlingPreferenceParcels" type="integer">
  Delivery handling preference for parcels.
</ResponseField>

<ResponseField name="DeliveryHandlingPreferencePublicity" type="integer">
  Delivery handling preference for publicity.
</ResponseField>

<ResponseField name="DeliveryInstructions" type="string">
  Free-text delivery instructions for this contract's mail handling.
</ResponseField>

<ResponseField name="IdentityChecksDueOn" type="string">
  Date by which identity verification checks must be completed for this contract.
</ResponseField>

<ResponseField name="AddressChecksDueOn" type="string">
  Date by which address verification checks must be completed for this contract.
</ResponseField>

<ResponseField name="StartDateLocal" type="string">
  Start Date Local.
</ResponseField>

<ResponseField name="RenewalDateLocal" type="string">
  Renewal Date Local.
</ResponseField>

<ResponseField name="NextAutoInvoiceLocal" type="string">
  Next Auto Invoice Local.
</ResponseField>

<ResponseField name="PricePlanTermsAcceptedOnLocal" type="string">
  Price Plan Terms Accepted On Local.
</ResponseField>

<ResponseField name="CancellationDateLocal" type="string">
  Cancellation Date Local.
</ResponseField>

<ResponseField name="ContractTermLocal" type="string">
  Contract Term Local.
</ResponseField>

<ResponseField name="ProposalUniqueId" type="string">
  Unique ID of the proposal that originated this contract.
</ResponseField>

<ResponseField name="ProposalContractUniqueId" type="string">
  Unique ID of the proposal contract line that originated this contract.
</ResponseField>

<ResponseField name="CourseMemberUniqueId" type="string">
  Course Member Unique Id.
</ResponseField>

<ResponseField name="InvoicedPeriodLocal" type="string">
  Invoiced Period Local.
</ResponseField>

<ResponseField name="FloorPlanDeskIds" type="string">
  Comma-separated IDs of floor-plan items assigned to this contract.
</ResponseField>

<ResponseField name="FloorPlanDeskNames" type="string">
  Comma-separated names of floor-plan items assigned to this contract.
</ResponseField>

<ResponseField name="FloorPlanDeskVariantIds" type="string">
  Comma-separated IDs of floor-plan item variants assigned to this contract.
</ResponseField>

<ResponseField name="FloorPlanDeskVariantNames" type="string">
  Comma-separated names of floor-plan item variants assigned to this contract.
</ResponseField>

<ResponseField name="PriceWithProductsAndDeposits" type="number">
  Total contract price including linked products (CoworkerProducts) and security deposits.
</ResponseField>

<ResponseField name="PriceWithProducts" type="number">
  Total contract price including linked products (CoworkerProducts) but excluding security deposits.
</ResponseField>

<ResponseField name="PoBoxNumber" type="string">
  PO box number.
</ResponseField>

<ResponseField name="InPausedPeriod" type="boolean">
  Whether the contract is currently in a paused period. Paused contracts are not invoiced.
</ResponseField>

<ResponseField name="InPausedPeriodFrom" type="string">
  Start date of the current pause period.
</ResponseField>

<ResponseField name="InPausedPeriodUntil" type="string">
  End date of the current pause period. The contract resumes billing after this date.
</ResponseField>

<ResponseField name="Id" type="integer">
  Unique record identifier.
</ResponseField>

<ResponseField name="UniqueId" type="string">
  UUID of the record.
</ResponseField>

<ResponseField name="CreatedOn" type="string">
  Date and time the record was created (ISO 8601).
</ResponseField>

<ResponseField name="UpdatedOn" type="string">
  Date and time the record was last updated (ISO 8601).
</ResponseField>

<ResponseField name="UpdatedBy" type="string">
  Email of the user who last updated this record.
</ResponseField>

<ResponseField name="IsNew" type="boolean">
  Whether the record was recently created.
</ResponseField>

<ResponseField name="SystemId" type="string">
  External system identifier.
</ResponseField>

```json Example Response theme={null}
{
  "IssuedById": 0,
  "IssuedByName": null,
  "CoworkerId": 0,
  "CoworkerCoworkerType": null,
  "CoworkerFullName": null,
  "CoworkerCompanyName": null,
  "CoworkerBillingName": null,
  "CoworkerEmail": null,
  "CoworkerActive": null,
  "TariffId": 0,
  "TariffName": null,
  "TariffInvoiceEvery": null,
  "TariffInvoiceEveryWeeks": null,
  "TariffPrice": 0,
  "TariffCurrencyCode": null,
  "NextTariffId": null,
  "NextTariffName": null,
  "Notes": null,
  "StartDate": null,
  "BillingDay": 0,
  "RenewalDate": null,
  "InvoicedPeriod": null,
  "ContractTerm": null,
  "Price": null,
  "Value": null,
  "Desks": [],
  "Variants": [],
  "Quantity": 0,
  "Active": false,
  "MainContract": false,
  "Cancelled": false,
  "PurchaseOrder": null,
  "IncludeSignupFee": false,
  "InvoiceAdvancedCycles": false,
  "ApplyProRating": false,
  "NextAutoInvoice": null,
  "PricePlanTermsAccepted": false,
  "PricePlanTermsAcceptedOn": null,
  "CancellationDate": null,
  "CancellationLimitDays": null,
  "ProRateCancellation": false,
  "CancelTeamContracts": false,
  "CancellationReason": 0,
  "CancellationNotes": null,
  "DeliveryHandlingPreferenceChecks": 0,
  "DeliveryHandlingPreferenceMail": 0,
  "DeliveryHandlingPreferenceParcels": 0,
  "DeliveryHandlingPreferencePublicity": 0,
  "DeliveryInstructions": null,
  "IdentityChecksDueOn": null,
  "AddressChecksDueOn": null,
  "StartDateLocal": null,
  "RenewalDateLocal": null,
  "NextAutoInvoiceLocal": null,
  "PricePlanTermsAcceptedOnLocal": null,
  "CancellationDateLocal": null,
  "ContractTermLocal": null,
  "ProposalUniqueId": null,
  "ProposalContractUniqueId": null,
  "CourseMemberUniqueId": null,
  "InvoicedPeriodLocal": null,
  "FloorPlanDeskIds": null,
  "FloorPlanDeskNames": null,
  "FloorPlanDeskVariantIds": null,
  "FloorPlanDeskVariantNames": null,
  "PriceWithProductsAndDeposits": 0,
  "PriceWithProducts": 0,
  "PoBoxNumber": null,
  "InPausedPeriod": false,
  "InPausedPeriodFrom": null,
  "InPausedPeriodUntil": null,
  "Id": 87654321,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "CreatedOn": "2025-01-10T08:00:00Z",
  "UniqueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "UpdatedBy": "admin@example.com",
  "IsNew": false,
  "SystemId": null,
  "ToStringText": "CoworkerContract Example",
  "LocalizationDetails": null,
  "CustomFields": null
}
```
