Skip to main content
GET
/
api
/
public
/
billing
/
invoices
/
{invoiceId}
/
coworkerContracts
/
{coworkerContractsUniqueId}
{
  "Id": 123,
  "UniqueId": "<string>",
  "TariffId": 123,
  "TariffName": "<string>",
  "StartDate": "<string>",
  "RenewalDate": "<string>",
  "Price": 123,
  "PriceFormatted": "<string>",
  "Active": true,
  "Cancelled": true,
  "IsPaused": true,
  "BillingDay": 123,
  "CurrencyCode": "<string>",
  "401 Unauthorized": {},
  "404 Not Found": {}
}

Get Invoice Contract Line

Returns the CoworkerContract record linked to a specific invoice line. This endpoint is used to enrich invoice lines that originate from a plan/contract charge, providing full contract details (plan name, dates, pricing, status) alongside the invoice.

Authentication

This endpoint requires an authenticated customer session.

Path Parameters

invoiceId
number
required
The unique identifier of the parent invoice.
coworkerContractsUniqueId
string
required
The UniqueId of the contract associated with the invoice line. Available on the invoice line object.

Query Parameters

_shape
string
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=Contract.Tariff.Name,Contract.Price,Contract.Active.

Response

Returns a CoworkerContract object.
Id
number
Unique identifier of the contract.
UniqueId
string
Globally unique identifier of the contract.
TariffId
number
ID of the plan associated with this contract.
TariffName
string
Display name of the plan.
StartDate
string
ISO 8601 date when the contract started.
RenewalDate
string
ISO 8601 date of the next renewal.
Price
number
Current price of the contract.
PriceFormatted
string
Pre-formatted price string (e.g. "$99.00/mo").
Active
boolean
Whether the contract is currently active.
Cancelled
boolean
Whether the contract has been cancelled.
IsPaused
boolean
Whether the contract is currently in a paused state.
BillingDay
number
Day of the month on which the contract is billed.
CurrencyCode
string
ISO 4217 currency code for the contract.

Example Response

{
  "Id": 5001,
  "UniqueId": "c7d8e9f0-1234-5678-abcd-ef0987654321",
  "TariffId": 12,
  "TariffName": "Hot Desk Monthly",
  "StartDate": "2025-01-01",
  "RenewalDate": "2025-11-01",
  "Price": 199.0,
  "PriceFormatted": "$199.00",
  "Active": true,
  "Cancelled": false,
  "IsPaused": false,
  "BillingDay": 1,
  "CurrencyCode": "USD"
}

Usage in Portal

Used to render contract/plan details within invoice line rows in the basket summary and invoice views.
  • File: src/components/Basket/invoiceLines/PlanInvoiceLineRow.tsx

Typical integration pattern

// From src/api/endpoints.ts
// endpoints.billing.invoices.coworkerContract = (invoiceId: number, coworkerContractsUniqueId: string) => ({
//   url: `/api/public/billing/invoices/${invoiceId}/coworkerContracts/${coworkerContractsUniqueId}`,
//   type: null as unknown as CoworkerContract,
// })

// Usage in React
const endpoint = endpoints.billing.invoices.coworkerContract(invoice.Id, line.CoworkerContractUniqueId)
const { resource: contract } = useData<typeof endpoint.type>(httpClient, endpoint.url)
  • GET /api/public/billing/invoices/{invoiceId} – Get full invoice details
  • GET /api/public/billing/coworkerContracts/{contractId} – Get contract details directly

Error Responses

401 Unauthorized
error
The current user is not authenticated or does not have access to this invoice.
404 Not Found
error
The invoice or contract does not exist or cannot be associated.