How it works
- Your server calls the Nectar API to create an invitation. The response includes an
invitationUrl. - You share the URL with your end user — by email, in an embedded iframe, or as a direct link.
- The user completes the connection flow (or credential update) through Nectar’s hosted UI.
- Nectar maintains secure access to the utility account and continuously collects bills and usage data.
- Your server receives
connection.created.v2andconnection.updated.v2webhook events as the connection progresses.
Invitation types
Both return an
invitationUrl you can share with the recipient.
Create a contributor invitation
Use this when you want an external contributor to create a new utility connection.1
Create the invitation
Call the create-invitation endpoint for the target company. The response contains Key fields:
invitationUrl and the invitation id.2
Share the invitation URL
The response’s Share it however you like — in your own emails, chat, or an iframe in your product.
invitationUrl follows this shape:The
/p/i/ prefix indicates a public (unauthenticated) page. The token is an opaque database-backed identifier — no encrypted payload is exposed in the URL.3
Embed in an iframe (optional)
Display the invitation inside your product. Nectar’s connection UI currently requires desktop-sized dimensions.
Create a reconnect invitation
Use this when an existing connection enters an error state (PASSWORD_INCORRECT, MFA_TOKEN_EXPIRED, NEW_PASSWORD_NEEDED, etc.) and you want the account owner to update credentials or refresh MFA forwarding.
For
MFA_TOKEN_EXPIRED, the reconnect wizard opens the MFA setup flow — not the password screen. It lets the end customer pick from the MFA recommendation ladder (upload bills, disable MFA on the portal, or configure one of the forwarding strategies). The shareable one-pager in MFA integration is written for end customers and can be forwarded directly.1
Create the reconnect invitation
Call the reconnect endpoint for the existing connection.
2
Share the reconnect URL
The returned
invitationUrl uses the same /p/i/{token} format as contributor invitations. The recipient lands on the edit-credentials flow for the existing connection — all historical data, account mappings, and site associations are preserved.Listing, inspecting, and revoking
The detail endpoint returns an event log — every view, email verification, and submission — so you can audit what happened with each invitation.
Prefilling data
Theprefill object on contributor invitations supports:
Prefill data is stored in the invitation record and used to pre-populate the connection form — your recipient sees the values already filled in but can still change them.
Prefer
datasourceId when the provider already exists in Nectar’s catalog — it guarantees the recipient lands on the correct provider configuration (including any MFA handling Nectar has set up for that utility). Fall back to url only when the provider isn’t in the catalog.Find a datasource ID
Use the datasource search endpoint to look up a provider by name or URL. It returns a paginated list of{ id, name, url } entries — pass id as prefill.datasourceId when creating an invitation.
If you can’t find a provider you expect to see, contact [email protected] — we can add it to the catalog.
Migration from magic links
If you have an existing integration using magic links, switch the endpoints you call — the embed pattern on the page is unchanged.
The old response
magicLinkUrl is replaced with invitationUrl on the invitation responses. URLs now use https://dash.nectarclimate.com/p/i/{token} instead of the legacy p/connect/... path. Existing magic links continue to work — you do not need to migrate live links, only the endpoints your server calls when creating new links.
Customization
Nectar supports white-label branding of the invitation iframe, including custom fonts, colors, and language localization. See the White-label documentation or contact [email protected] for setup details.Security
Invitation tokens are opaque random identifiers stored in Nectar’s database — they contain no payload and cannot be decoded. Authorization decisions (is it still active? is this email allowed?) happen server-side on every request, which is why revocation takes effect immediately.- Email gate. When
allowedEmailsis set, the recipient must verify ownership of one of those addresses (via a one-click email link) before the invitation is redeemable. - Expiration.
expiresAtis enforced server-side. - Max uses.
maxUsesis enforced atomically; concurrent redemptions don’t race. - Audit trail. Every view, email verification, and submission is logged and surfaced on the invitation detail endpoint.
Next steps
MFA integration
Decision tree for MFA-protected utility accounts.
Webhooks
Get notified when a connection is created or updated.
Connection statuses
Understand the connection lifecycle.