Hosted enrollment (enrollmentUrl)
enrollmentUrl links to a full-page, PowerHQ-hosted enrollment flow. Use this when you want to redirect the customer to a standalone page managed entirely by PowerHQ. Your partner code is embedded in the URL as both the utm_source and ref query parameters, so every completed enrollment is attributed to you.
Headless enrollment (headlessEnrollmentUrl)
headlessEnrollmentUrl provides an embeddable enrollment flow you can render inside your own UI — for example, inside an iframe or a modal. Like the hosted URL, it is already partner-stamped with your utm_source and ref values.
Use the headless URL when you want customers to complete enrollment without leaving your product’s visual context.
Example URL pattern:
utm_sourceandref— your partner code for attributionutm_campaign— comes back aspartners. Replace it with your own value to pass attributionplan_id— the unique plan identifier from the APIzip_code— the customer’s ZIP code passed through from your query
Prefilling the enrollment
The URLs on a plan start the customer at the beginning of checkout. When you already know something about the customer,residentialEnrollmentUrl and businessEnrollmentUrl build a link that carries it, so they do not type it twice.
Supply the customer’s name and contact details through the customer argument, their consumption through monthlyUsage (residential) or annualUsageInkWh (business), and their service account through utilityAccountNumber. Each value you pass appears in the returned link and prefills the matching field at checkout.
Prefilling the service address
The service address is attached through the customer’s utility account, not through the address itself. It is a two-step flow.1
Find the account
Query Searching by address works too, but the match is strict:
utilityAccounts to resolve the customer’s service account. Search by accountNumber when the customer can give you their ESID, which is the reliable path:street must be spelled the way the utility spelled it, unit included, and street2 is compared exactly. Prefer the ESID whenever you can get one.2
Pass the account number
Send the
accountNumber from that result as the utilityAccountNumber argument on the enrollment URL query.3
Check the returned link
The URL comes back carrying
prospect_id, PowerHQ’s identifier for that service account, and state. Their presence confirms the address is attached.Supplier enrollment link
Some plans include aLinkType.ENROLLMENT entry inside the documents[] array. This entry points directly to the supplier’s own website and is not a PowerHQ-hosted flow.
Attribution
Your partner code replaces theYOUR_PARTNER_CODE placeholder shown in the example URL above. The API returns URLs already stamped with your actual code, so attribution works without you doing anything.
To pass your own attribution, set utm_campaign on the returned link, the same way you do on a Drop-in Storefront link. Whatever it holds when the customer converts appears in your daily conversion file and your monthly commission report. Leave the rest of the link as returned.
Before presenting any enrollment URL to a customer, make sure all applicable disclosure documents are visible. Customers must have access to plan disclosures before they enroll. See Disclosure Documents for requirements.