v1

latestOpenAPI 3.0.22026-07-141713124.8 KB
Forms

Get Form Fields

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:

SupplierDeposit OptionsAutopay OptionsDepositAutopay Options
Payless Powercredit cardcredit cardcredit card
Chariot Energycredit card/deposit waiver
4Change Energycredit cardcredit cardcredit card
Veteran Energycredit cardcredit cardcredit card
Express Energycredit cardcredit cardcredit 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.

PropertyMeaning
groupLogical group name — fields sharing a group are chained
levelPosition in the chain (1 = root, 2 = first child, …)
parentKey of the field whose selected value selects options here
options_mapMap 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.

get/form

Query parameters

offer_idstring required

The unique identifier for the offer. This was previously referred to as plan_id.

Response

OK

requiredLoaboolean

Example response

{
  "supplierForm": {
    "form": {
      "firstName": {
        "required": true,
        "regex": "^[A-Za-z -]{1,50}$",
        "errMsg": "First Name is a required field and should be 1-50 characters.",
        "formSection": "personal"
      },
      "lastName": {
        "required": true,
        "regex": "^[A-Za-z -]{1,50}$",
        "errMsg": "Last Name is a required field and should be 1-50 characters.",
        "formSection": "personal"
      },
      "serviceStartDate": {
        "required": true,
        "errMsg": "Choose a Service start date.",
        "formSection": "switch_move",
        "availableDates": {
          "type": "object",
          "description": "Following properties are optional it will change based on plan",
          "properties": {
            "move": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "2021-01-01"
              }
            },
            "forward_switch": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "2021-01-01"
              }
            },
            "priority_move": {
              "type": "array",
              "items": {
                "type": "string",
                "example": "2021-01-01"
              }
            }
          }
        }
      }
    }
  }
}