> ## 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 Proposal Details

> Returns the full details of a proposal by its unique identifier.

# 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

<ParamField path="proposalId" type="string" required>
  The unique string identifier (GUID) of the proposal.
</ParamField>

## Query Parameters

<ParamField query="_shape" type="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=Tariff.Name,Price,Status,StartDate,Contracts,Products`.
</ParamField>

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

```http theme={null}
GET /api/public/proposals/abc123-def456
```

## TypeScript Integration

```typescript theme={null}
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
```
