---
title: "Get Form Fields"
method: GET
path: "/form"
tags: ["Forms"]
---

# Get Form Fields

`GET /form`

Returns the fields required to submit an offer enrollment for the given `offer_id`.
The field schema varies by offer — pass the `offer_id` from the offers endpoint and
use the returned fields to construct the POST /form request body.

## Offer Categories

### Retail Electricity (Dereg) Offers
Key features include:
1. Input Fields: Provides all required and optional fields for the enrollment form.
2. Validation Rules: Each field includes appropriate validation rules in regex format.
3. Field Options: Some fields come with supported options and their corresponding labels.
4. Conditional Fields: Certain fields are required based on dependent keys and values
   (`dependent_key` / `dependent_value` — see below).
5. Agreement Fields: Includes necessary text and agreement fields for terms of service.
6. Service Types & Dates: Includes supported service types (switch, forward switch, move,
   priority move) with corresponding available dates. (For Texas only)
7. Utility Validations:
   - For Non-Texas: Specific validation rules for Utility Account Numbers (UAN)
   - For Texas: ESIID (Electric Service Identifier) validation rules
8. Optional Fields: Includes fields for deposit, autopay, and deposit with autopay
   scenarios. These are particularly useful for validating card details when the
   enrollment requires deposit, autopay, deposit with autopay or deposit waiver based
   on credit-check response.

Payment Metrix:

|Supplier|Deposit Options|Autopay Options|DepositAutopay Options|
|--------|---------------|---------------|----------------------|
|Payless Power|credit card|credit card|credit card|
|Chariot Energy|credit card/deposit waiver|||
|4Change Energy|credit card|credit card|credit card|
|Veteran Energy|credit card|credit card|credit card|
|Express Energy|credit card|credit card|credit card|

## Conditional Field Schemas

### `dependent_key` / `dependent_value` (dereg offers)
A field with `dependent_key` and `dependent_value` is only shown (and required) when
the referenced sibling field equals the given value.

```
socialSecurity:
  dependent_key: selectSsnDl       # watch this field
  dependent_value: socialSecurity   # show me when it equals this
```

### `cascading_group` (chained dropdowns)
A field with `cascading_group` participates in a multi-level chained dropdown.
Each level filters the options of the next level based on the selected value.

| Property | Meaning |
|----------|---------|
| `group`  | Logical group name — fields sharing a group are chained |
| `level`  | Position in the chain (1 = root, 2 = first child, …) |
| `parent` | Key of the field whose selected value selects options here |
| `options_map` | Map from parent value → array of valid options for this field |

**Important difference from `dependent_key`:**
- `dependent_key` hides/shows a field based on a binary condition (show or hide).
- `cascading_group` narrows the *allowed options* of a field based on the parent
  selection. The field is always visible; its option list changes dynamically.

**Vehicle selection cascade:**
Three chained levels: `vehicleMake` (level 1) → `vehicleModel` (level 2) → `vehicleYear` (level 3).
Makes and models are sorted alphabetically; years are sorted newest-first.

## Query parameters

- `offer_id` string, required

## Response `200`

OK

- FormResponse
  - `supplierForm` object
    - `form` object — Dynamic form fields that vary by offer/plan type
    - `tos` object
  - `requiredLoa` boolean
  - `uan_validations` UANValidations[] — This property is optional
    - `lengthValidation` string
    - `regex` string
    - `utilityId` string

## Other responses

- `204` — Form is not available
- `400` — Bad request
- `500` — Internal server error

---

[API](https://skmtc.net/wattbuy/apis/wattbuy-apis.md) · [All operations](https://skmtc.net/wattbuy/apis/wattbuy-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/wattbuy/wattbuy-apis/revisions/97771153b652/schema)
