Showing disclosures
Electricity is a regulated purchase. Every plan carries disclosure documents the customer is entitled to see, and you must make them accessible whenever a plan is displayed — before enrollment.
Where they are
Each plan returns a documents[] array:
residentialPlans(zipCode: "77002") {
title
documents { type url title }
}
"documents": [
{ "type": "EFL", "url": "https://.../efl.pdf", "title": null },
{ "type": "TOS", "url": "https://.../tos.pdf", "title": null },
{ "type": "YRAC", "url": "https://.../yrac.pdf", "title": null }
]
Surface each as a link on the plan card or detail view.
Document types vary by state
type is a LinkType enum, and which types appear depends on the market:
- Texas —
EFL(Electricity Facts Label),TOS(Terms of Service),YRAC(Your Rights as a Customer). - Pennsylvania —
CONTRACT_SUMMARYandTOS(no EFL/YRAC). - Other states — their own required disclosures. The full enum also includes
PREPAID_DISCLOSURE_STATEMENT,ENVIRONMENTAL_DISCLOSURE,ARBITRATION_ADDENDUM,COMM_POLICY,PAYMENT_TERMS, andENROLLMENT.
Don't hard-code an assumption that a specific type is present. Render whatever documents[] contains, labeled by type. An empty array is valid for some data — handle it gracefully rather than treating it as an error.
ENROLLMENT is different
A documents[] entry of type ENROLLMENT links to the supplier's own enrollment page — it is not a PowerHQ-hosted flow, and it isn't guaranteed to be present. For a PowerHQ checkout, use the plan's headlessEnrollmentUrl / enrollmentUrl (see Embedded checkout) — don't route customers to the ENROLLMENT document.
The compliance rule
The plan's disclosure documents must be accessible to the customer whenever the plan is displayed, and before they enroll.
In practice: link the relevant documents[] (at minimum the primary disclosure — EFL in Texas, Contract Summary in PA) on any surface where the plan and its price appear. If a customer can see the price, they should be able to open the disclosure.
Checklist
- Render every entry in
documents[], labeled bytype. - Don't assume
EFL(or any type) exists — it's state-specific. - Treat an empty
documents[]as valid, not an error. - Don't use the
ENROLLMENTdocument as your checkout link — useheadlessEnrollmentUrl.