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
The unique identifier of the parent invoice.
coworkerContractsUniqueId
The UniqueId of the contract associated with the invoice line. Available on the invoice line object.
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=Contract.Tariff.Name,Contract.Price,Contract.Active.
Response
Returns a CoworkerContract object.
Unique identifier of the contract.
Globally unique identifier of the contract.
ID of the plan associated with this contract.
Display name of the plan.
ISO 8601 date when the contract started.
ISO 8601 date of the next renewal.
Current price of the contract.
Pre-formatted price string (e.g. "$99.00/mo").
Whether the contract is currently active.
Whether the contract has been cancelled.
Whether the contract is currently in a paused state.
Day of the month on which the contract is billed.
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
The current user is not authenticated or does not have access to this invoice.
The invoice or contract does not exist or cannot be associated.