Overview
A connection represents a link between Nectar and a utility provider. After creation, a connection moves through a series of statuses as Nectar authenticates, discovers accounts, and collects data. Your integration should monitor these statuses and respond appropriately — some require action from you or your end user, while others resolve automatically.Status flow
Connections follow this general lifecycle:What each status means for your integration
Healthy statuses — no action needed
Credential errors — user action required
These statuses mean data collection is stopped until the end user provides updated credentials. Your integration should surface these to the user and provide a way to fix them.Provider errors — automatic retry
These statuses are caused by issues on the utility provider’s side. Nectar retries automatically on the next weekly check. No action is required, but you may want to surface them to users for visibility.System statuses
Deactivating and activating a connection
You can deactivate a connection to stop data collection without losing any historical data. Deactivated connections preserve all bills, accounts, and meter usage that were collected before the deactivation.status field will reflect as DEACTIVATED until you activate it.
CONNECTED or whatever scrape outcome it had before the deactivation), and a fresh data collection cycle begins.
Handling status changes in your integration
Subscribe to webhooks
The most efficient way to track connection status changes is via webhooks. Subscribe to these event types:
The
connection.updated.v2 payload includes a protectedChanges array listing which fields changed, and an old object with the previous values:
Poll for status
If webhooks aren’t suitable for your architecture, poll the connection detail endpoint periodically:Recommended integration pattern
1
Monitor for credential errors
Subscribe to
connection.updated.v2 webhooks. When a status change arrives, check if the new
status is one of the four credential errors: PASSWORD_INCORRECT, MFA_TOKEN_EXPIRED,
NEW_PASSWORD_NEEDED, or ADDITIONAL_CREDENTIALS_NEEDED.2
Notify the end user
Surface the error in your application’s UI. Include the connection’s utility provider name (from
the
datasource.name field) and a clear description of what’s needed.3
Create a reconnect invitation
Use the connection-invitation endpoint to generate a secure URL the user can visit to update their
credentials. See Connection invitations for details.For
MFA_TOKEN_EXPIRED, also point the customer to document upload as the recommended first option — uploaded bills produce the same downstream data and avoid MFA configuration entirely. See MFA integration.4
Confirm resolution
After the user completes the flow, a new
connection.updated.v2 webhook fires with status: "CONNECTED". Update your UI accordingly.Account lifecycle
Each connection contains one or more accounts — individual utility accounts discovered on the provider’s website. Accounts have their own status and tracking lifecycle.Account statuses
Account tracking
After Nectar discovers accounts on a connection, you can confirm which ones to track using the confirm endpoint:trackingStatus field:
Check frequency
- Connections are checked weekly for new data.
- Terminal account statuses (
OLD_ACCOUNT,DUPLICATE,CUSTOMER_NOT_TRACKED) are not re-checked. - Credential errors (
PASSWORD_INCORRECT,MFA_TOKEN_EXPIRED,NEW_PASSWORD_NEEDED,ADDITIONAL_CREDENTIALS_NEEDED) stop collection until the user takes action. - All other statuses (including provider errors like
WEBSITE_DOWN) are retried on the next weekly cycle.
Connection API endpoints
Related pages
Connection statuses
Quick reference of all status values
Connection invitations
Let users create or update connections in a secure hosted UI
MFA integration
Decision tree and shareable one-pager for MFA-protected accounts