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

# List Published Plans

> Returns all published plans available for sign-up, optionally filtered by invite code.

# List Published Plans

Returns all plans (tariffs) that are published and available for new customers to sign up for. Optionally accepts an invite GUID to show invite-only plans.

## Authentication

No authentication required.

## Query Parameters

<ParamField query="invite_guid" type="string">
  Invite GUID to unlock private/invite-only plans. Omit to see only publicly listed plans.
</ParamField>

<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=Plans.Name,Plans.Price,Plans.Description`.
</ParamField>

## Response

Returns an object with a `Plans` array. Each plan has the following fields:

#### Identity

| Field      | Type     | Description                    |
| ---------- | -------- | ------------------------------ |
| `Id`       | `number` | Unique identifier for the plan |
| `UniqueId` | `string` | GUID identifier                |

#### Core

| Field                | Type      | Description                           |
| -------------------- | --------- | ------------------------------------- |
| `Name`               | `string`  | Display name of the plan              |
| `Description`        | `string`  | Plan description (may contain HTML)   |
| `TermsAndConditions` | `string`  | Terms and conditions text             |
| `GroupName`          | `string`  | Plan group name for categorisation    |
| `SystemTariffType`   | `number`  | Internal tariff type identifier       |
| `IsVirtualOffice`    | `boolean` | Whether this is a virtual office plan |

#### Pricing

| Field                 | Type       | Description                   |
| --------------------- | ---------- | ----------------------------- |
| `Price`               | `string`   | Formatted price string        |
| `PriceFormatted`      | `string`   | Locale-formatted price string |
| `PriceDecimal`        | `number`   | Price as decimal value        |
| `PriceDecimalExTax`   | `number`   | Price excluding tax           |
| `TotalPrice`          | `string`   | Total price string            |
| `TotalPriceFormatted` | `string`   | Locale-formatted total price  |
| `TotalPriceDecimal`   | `number`   | Total price as decimal        |
| `Currency`            | `Currency` | Currency object (nested)      |
| `TaxRate`             | `number?`  | Applicable tax rate           |

#### Billing

| Field                        | Type      | Description                               |
| ---------------------------- | --------- | ----------------------------------------- |
| `InvoiceEvery`               | `number`  | Invoice frequency                         |
| `InvoiceEveryWeeks`          | `number`  | Invoice frequency in weeks                |
| `InvoicePeriod`              | `number`  | Invoice period                            |
| `InvoiceInMonths`            | `boolean` | Whether billing is in months              |
| `DefaultContractTerm`        | `number?` | Default contract term length              |
| `DisablePortalCancellations` | `boolean` | Whether portal cancellations are disabled |
| `CanBePaused`                | `boolean` | Whether the plan can be paused            |
| `KeepNewAccountsOnHold`      | `boolean` | Whether new accounts are kept on hold     |

#### Limits

| Field                   | Type      | Description                   |
| ----------------------- | --------- | ----------------------------- |
| `CheckinPricePlanLimit` | `number?` | Check-in limit per price plan |
| `CheckinMonthLimit`     | `number?` | Monthly check-in limit        |
| `CheckinWeekLimit`      | `number?` | Weekly check-in limit         |
| `HoursPricePlanLimit`   | `number?` | Hours limit per price plan    |
| `HoursMonthLimit`       | `number?` | Monthly hours limit           |
| `HoursWeekLimit`        | `number?` | Weekly hours limit            |

#### Discounts

| Field                   | Type      | Description                |
| ----------------------- | --------- | -------------------------- |
| `DiscountCharges`       | `number?` | Discount on charges        |
| `DiscountExtraServices` | `number?` | Discount on extra services |
| `DiscountTimePasses`    | `number?` | Discount on time passes    |

#### Virtual Office

| Field                   | Type      | Description               |
| ----------------------- | --------- | ------------------------- |
| `MaximumAddresses`      | `number?` | Maximum virtual addresses |
| `MaximumCompanyAliases` | `number?` | Maximum company aliases   |
| `MaximumRecipients`     | `number?` | Maximum mail recipients   |

#### Nested Objects

| Field            | Type                    | Description                      |
| ---------------- | ----------------------- | -------------------------------- |
| `TimePasses`     | `TariffTimePass[]`      | Time passes included in the plan |
| `ExtraServices`  | `TariffExtraService[]`  | Extra services included          |
| `BookingCredits` | `TariffBookingCredit[]` | Booking credits included         |
| `SignupProducts` | `Product[]`             | Products added at sign-up        |
| `Products`       | `Product[]`             | Products included with the plan  |

#### Business

| Field                | Type     | Description          |
| -------------------- | -------- | -------------------- |
| `BusinessId`         | `number` | Business identifier  |
| `BusinessName`       | `string` | Business name        |
| `BusinessWebAddress` | `string` | Business web address |

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

## Examples

### Fetch published plans

```http theme={null}
GET /api/public/plans/published
```

### Fetch with invite code

```http theme={null}
GET /api/public/plans/published?invite_guid=abc123-def456
```

## TypeScript Integration

```typescript theme={null}
import endpoints from '@/api/endpoints'

const { resource: plans } = useTypedData(httpClient, endpoints.plans.published())
// plans.Plans
```
