Get Proposal Details
Returns the full content and status of a specific proposal. Proposals are sent by operators to prospective or existing members and may include plan selections, terms, and pricing.
Authentication
No authentication required — proposals are accessed via their unique identifier.
Path Parameters
The unique string identifier (GUID) of the proposal.
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,Status,StartDate,Contracts,Products.
Response
Returns a ProposalData object containing the proposal, associated invoices, and bill run information.
Proposal
The top-level Proposal object has the following fields:
Identity
| Field | Type | Description |
|---|
Id | number | Unique identifier for the proposal |
UniqueId | string | GUID identifier |
Reference | string | Proposal reference code |
Status
| Field | Type | Description |
|---|
Status | string | Current proposal status |
HasExpired | boolean | Whether the proposal has expired |
HasFile | boolean | Whether a file is attached |
HasFileToSend | boolean | Whether there is a file to send |
HasFileToSign | boolean | Whether there is a file requiring signature |
FileToSignId | number? | File-to-sign identifier |
Pricing
| Field | Type | Description |
|---|
Price | number? | Base price amount |
PriceFormatted | string | Locale-formatted price |
TotalPrice | number | Total price including all items |
TotalPriceFormatted | string | Locale-formatted total price |
Quantity | number | Quantity |
ApplyProrating | boolean | Whether prorating is applied |
DoNotIssueInvoice | boolean | Whether invoicing is suppressed |
Dates
| Field | Type | Description |
|---|
StartDate | string? | Contract start date |
CancellationDate | string? | Cancellation date |
BillingDay | number | Day of month for billing |
Content
| Field | Type | Description |
|---|
Notes | string | Proposal notes |
DiscountDescription | string | Discount description text |
Desks | string | Assigned desks |
Nested Objects
| Field | Type | Description |
|---|
IssuedBy | Business | Business that issued the proposal |
Coworker | Coworker | Coworker the proposal is for |
Responsible | User | User responsible for the proposal |
Tariff | Tariff | Associated plan/tariff |
Contracts | ProposalContract[] | Contract schedule items |
Products | ProposalProduct[] | Products included in the proposal |
Timestamps (from base)
| Field | Type | Description |
|---|
CreatedOn | string | Record creation timestamp (local) |
UpdatedOn | string | Record last-update timestamp (local) |
CreatedOnUtc | string | Record creation timestamp (UTC) |
UpdatedOnUtc | string | Record last-update timestamp (UTC) |
ProposalProduct
Each item in the Products array has:
| Field | Type | Description |
|---|
Id | number | Unique identifier |
Product | Product | Full product object (nested) |
Price | number | Price amount |
PriceFormatted | string | Locale-formatted price |
TotalPrice | number? | Total price |
TotalPriceFormatted | string | Locale-formatted total price |
Quantity | number | Quantity |
RegularCharge | boolean | Whether this is a recurring charge |
IsContractProduct | boolean | Whether tied to a contract |
RepeatCycle | string | Repeat cycle description |
RepeatUnit | number? | Repeat unit |
InvoiceOn | string? | Next invoice date |
RepeatFrom | string? | Repeat start date |
RepeatUntil | string? | Repeat end date |
Invoices
Invoices is an array of invoice preview objects associated with the proposal.
BillRun
Each item in the BillRun array has:
| Field | Type | Description |
|---|
FullName | string | Customer full name |
FloorPlanDeskNames | string | Assigned desk names |
PurchaseOrder | string | Purchase order reference |
ItemId | number | Item identifier |
Type | string | Charge type |
Date | string | Charge date |
PeriodStart | string | Billing period start |
PeriodEnd | string | Billing period end |
Description | string | Charge description |
Total | number | Charge total |
TeamNames | string | Associated team names |
PayingMemberId | number? | Paying member identifier |
Examples
Fetch proposal details
GET /api/public/proposals/abc123-def456
TypeScript Integration
import endpoints from '@/api/endpoints'
import { ProposalData } from '@/types/public/billing/Proposal'
const { resource: proposalData } = useTypedData(httpClient, endpoints.proposals.one('abc123-def456'))
// Access: proposalData.Proposal, proposalData.Invoices, proposalData.BillRun