Document Version: 1.0 Plug API Version:2024-02-21 (Most recent) Last Updated: 2026-04-07
This document is the comprehensive migration reference for customers moving from the Utility Cloud (UC) API to the Plug API. It covers every aspect of the migration including authentication, endpoint mapping, field-by-field resource mappings, status/enum changes, error handling, and behavioral differences.
The database is the same, meaning that customers do not have to resubmit their credentials to migrate. All their data is accessible already.
Authentication method: Bespoke framework with unified username/password
The same credentials were used for both the API and the Console (dashboard)
User-specific audit trails available for both API and Console changes
Plug API (New)
Authentication method: Fully compliant with OAuth 2.0
Organization-level API keys: Multiple API keys can be created per organization
Separate credentials: Dashboard requires email/password; API requires API keys
Migration Action
Obtain new OAuth 2.0 API keys for your organization from the Arcadia Dashboard
Update your API client to use Bearer token authentication
If you are using service accounts for API access, create new API keys to replace them and then delete the existing service accounts to avoid stale credentials.
Update all users to login with their email address instead of a username. Plug enforces one user per email address.
If your organization has multiple users sharing the same email, contact your CSM team to consolidate accounts before migrating. Duplicate email logins must be resolved prior to migration.
3. Required Headers
New Required Header
The Plug API introduces dated API versioning. You must include the Arcadia-Version header in every request:
Arcadia-Version: 2024-02-21
This enables Arcadia to introduce breaking changes in future versions without forcing immediate client updates.
Sandbox Mode Header
The Plug API supports sandbox mode via a request header:
X-Sandbox: true
Set this header to true to operate in sandbox mode. Default is false (production mode).
Content-Type Changes
Aspect
Utility Cloud
Plug API
Request Content-Type
application/json
application/json
Response Content-Type
application/hal+json
application/json
Example Requests
Utility Cloud:
curl --request GET \
--url 'https://api.urjanet.com/utility/accounts?page=0&size=20' \
--header 'accept: application/json'
These endpoints exist only in the Plug API and have no UC equivalent.
Resource
Method
Path
Description
List Detailed Statements
GET
/statements/details
Paginated list with full detail
Detailed Statement
GET
/statements/{id}/details
Get Single Statement with full detail
List Detailed Accounts
GET
/accounts/details
Paginated list with full detail
Detailed Account
GET
/accounts/{id}/details
Get Single Account with full detail
Expected Accounts
GET
/expectedAccounts
Track expected but not yet discovered accounts
Create Expected Account
POST
/expectedAccounts
Create an expected account
Discovered Statements
GET
/discoveredStatements
Statement discovery tracking
Normalized Intervals
GET
/normalizedIntervals
Normalized interval data for meters
Intervals
GET
/intervals
Raw interval data for meters
Providers
GET
/providers
Provider directory
Service Types
GET
/serviceTypes
Available service types
Arcadia Connect URL
POST
/credentials/encodedConnectUrl
Generate Arcadia Connect URLs
MFA Submit
POST
/credentials/{id}/mfa
Submit Multi Factor Authentication method
OTP Submit
POST
/credentials/{id}/otp
Submit one-time password
Sandbox Statement Generation
POST
/credentials/{id}/newStatement
Generate a new statement for a sandbox credential; requires sandbox mode
Webhook Test
POST
/webhooks/{id}/test
Test webhook delivery
Removed/Changed UC Endpoints
UC Endpoint
Status in Plug
Alternative
GET /{resource}/searchableFields
Removed
Searchable fields are now documented in the API Reference
GET /accountData
Changed
Available via statement details accountData field
GET /meterData
Changed
Available via statement details
GET /tariffs
Changed
Available via statement details
GET /charges
Changed
Available via statement details
GET /usage
Changed
Available via statement details
5. Response Format Changes
HATEOAS/HAL Removal
The most significant structural change is the removal of HATEOAS (Hypermedia as the Engine of Application State) and HAL (Hypertext Application Language) formatting.
Detailed — full fields including charges, usages, account data
GET /statements/details
Detailed list — paginated list with full detail
Migration Action
Remove all code that parses _embedded wrappers — access content directly
Remove all code that follows _links for navigation — use page metadata instead
Remove all code that reads _links from individual resources
Update your Content-Type expectations from application/hal+json to application/json
If you need full statement details in list calls, use GET /statements/details instead of GET /statements
6. ID Format Changes
All resource IDs in the Plug API are prefixed with a resource-type identifier.
ID Prefix Table
Resource
Prefix
UC Example
Plug Example
Account
act_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
act_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Credential
crd_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
crd_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Statement
stm_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
stm_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Meter
mtr_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
mtr_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
File
fil_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
fil_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Site
sit_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
sit_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Organization
org_
12345
org_12345
Webhook
whk_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
whk_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Payment
pmt_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
pmt_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Provider
prv_
eedaa3e-bccb-d579-8f8d-6a861e9050ca
prv_eedaa3e-bccb-d579-8f8d-6a861e9050ca
Usage
usg_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
usg_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Charge
chg_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
chg_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Async Job
job_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
job_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Download
dwl_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
dwl_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Deletion Log
del_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
del_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Event
evt_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
evt_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Bulk Upload
bup_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
bup_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Expected Account
eac_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
eac_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Expected Meter
emt_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
emt_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Discovered Statement
dss_
1eedaa3e-bccb-d579-8f8d-6a861e9050ca
dss_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Statement Version
stv_
—
stv_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Discovered Stmt Version
dsv_
—
dsv_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Alternate Access
alt_
—
alt_1eedaa3e-bccb-d579-8f8d-6a861e9050ca
Error
err_
—
err_abc123def (NanoID, not UUID)
Note: Additional resource ids can be added down the road for new Entities and would not be considered breaking.
ID Field Name Change
The field name itself also changes:
Utility Cloud
Plug API
entityId
id
Note: Error IDs use NanoIDs (not UUIDs) and follow the format err_<nanoid>.
Migration Action
Update all ID parsing logic to handle the prefix format
Replace references to entityId with id
When sending IDs in requests (path parameters, request bodies), use the prefixed format
If you store IDs externally, plan for the prefix addition
7. Field Naming Convention Changes
The Plug API applies systematic naming rules across all resources:
Naming Rules
Pattern
Utility Cloud
Plug API
Example
Timestamps (date+time)
*Date
*At
createdDate → createdAt
Date-only fields
periodStart
*Date
periodStart → periodStartDate
Boolean fields
Various
is* prefix
enabled → isActive
"Actual name" fields
*ActualName
*AsPrinted or *NameAsPrinted
chargeActualName → chargeNameAsPrinted
Abbreviations
Abbreviated
Expanded
podNumber → pointOfDeliveryNumber
ID references
entityId
id
entityId → id
Common Field Renames Across All Resources
Utility Cloud Field
Plug API Field
entityId
id
createdDate
createdAt
lastModifiedDate
lastModifiedAt
discoveredDate
discoveredAt
periodStart
periodStartDate
periodEnd
periodEndDate
enabled
isActive (Credential) or isStatementsProductActive (Account)
providerName
(moved inside provider.name)
providerAlias
(removed — use provider.name)
8. Resource Field Mappings
This section provides field-by-field mapping tables for every resource type. Fields marked New exist only in Plug. Fields marked Removed exist only in UC.
Changed from List<String> to List<PublicServiceTypeResource>
summaryAccountNumber
summaryAccountNumber
String
Unchanged
type
type
Enum
Unchanged (AccountType)
origin
—
Enum
Removed — Indicated how data was first sourced: FILE_UPLOAD (manually uploaded) or WEB_NAVIGATION (extracted via automated web navigation). This field has been replaced by dataIngestionMethod on Statement resources (see Section 9.11).
prepaid
prepaid
boolean
Unchanged
meterCount
—
Integer
Removed
customData
customData
Object
Unchanged structure
—
billingCycle
Enum
New — The expected billing cycle. Determined by the service period of the most recent Statement.
—
summaryAccountId
UUID
New — The unique identifier of the summary account.
—
siteNames
List<String>
New — An array of names for Sites.
—
isCustomerActionRequired
boolean
New — Indicates whether any action is required from you regarding this resource.
—
correlationIds
List<String>
New — A list of correlationIds cascaded from all directly associated Credentials and Files.
—
isHistoryFulfilled
Boolean
New — If true, all Statement Gaps for this Account are EXPECTED, or Statement Gaps are not applicable for the Account, such as summary Accounts or Accounts without any COREserviceTypeClassification Meters. If false, there is at least one Statement Gap that is not EXPECTED or the gaps are pending computation.
—
isAccessible
boolean
New — Indicates whether the Account has at least one Credential associated with it in an accessible status detail.
—
isIntervalsThirdPartyPortalAccount
boolean
New — Indicates whether or not this account is enrolled under an intervals third party portal.
—
voidedAt
Date
New — A timestamp indicating when the entity was voided. This value resets to null if the entity is unvoided. See event history for additional context.
New — An array of the accounts this meter belongs to. These accounts are searchable on accountNumber and accountId.
—
status
Enum
New — Status of the resource.
—
statusDetail
Enum
New — Reason the resource has the current status.
—
serviceTypeClassification
Enum
New — The classification for the service type depending on the comprehensiveness of data that can be returned.
—
earliestIntervalAt
Date
New — A timestamp of the earliest interval available for the meter.
—
latestIntervalAt
Date
New — A timestamp of the latest interval available for the meter.
—
latestStatementDate
Date
New — The date of the most recent statement.
—
isIntervalsProductActive
boolean
New — Indicates if intervals is activated for the meter.
—
localTimezone
String
New — For meters that have intervals available, the meter's local timezone. The value can be any TZ identifier from this this list.
—
correlationIds
List<String>
New — A list of correlationIds cascaded from all directly associated Credentials and Files.
—
isIntervalsThirdPartyPortalMeter
boolean
New — Indicates whether or not this meter is enrolled under an intervals third party portal.
—
isLocationRecommendationIgnored
boolean
New — Indicates whether or not location recommendation should be ignored.
—
isStandalone
boolean
New — Indicates a meter is not expected to relate to a site.
—
latestIntervalsCheckedAt
Date
New — A timestamp of the most recent intervals check Arcadia attempted.
—
voidedAt
Date
New — A timestamp indicating when the entity was voided. This value resets to null if the entity is unvoided. See event history for additional context.
New — The resource type of the entity that the webhook references. This field determines the structure of the payload contained in the data field of the webhook body.
New — The unique record identifier for this charge (prefixed chg_). This is NOT a charge classification or mapping name — it is the database identifier for the charge line item.
chargeActualName
chargeNameAsPrinted
String
Renamed
chargeName
—
String
Removed — This was the normalized/mapped charge category name in UC. In Plug, the printed charge label is available via chargeNameAsPrinted. There is no direct replacement for the normalized charge name.
averageUnitCost
averageUnitCostAsPrinted
BigDecimal
Renamed
createdDate
createdAt
Date
Renamed
—
lastModifiedAt
Date
New — The timestamp indicating when this resource was last modified.
New — We require this token to be provided when you want to access the requested download file. If you made the request via an API call, this token can be found in our response to you. If you made the request via the Dashboard, this token already be included in the email we would send you.
Custom data field names are configured at the organization level using accountCustomData1Name through accountCustomData25Name (accounts) and meterCustomData1Name through meterCustomData10Name (meters).
9. Status & Enum Value Mappings
9.1 Account Status
UC Value
Plug Value
Description
NEW_ACCOUNT
NEW_ACCOUNT
Newly created account
OK
CONNECTION_SUCCESS
Successfully connected
PENDING
CONNECTION_IN_PROGRESS
Connection in progress
ACCESS_ISSUE
DATA_ACCESS_FAILURE
Cannot access data
OLD
INACTIVE
Account has not received new statements for 12+ months. Evaluated daily by an automated process based on statement date (12-month threshold), period end date (14-month threshold), and account creation date (2-month threshold with no statements).
Data is being accessed through an alternate login (Guest Access) attached to the primary credential, rather than the primary credential's own login. If no alternate access exists, the connection health will match the credential status.
9.4 Credential Status Detail
UC Value
Plug Value
NO_ACTION_REQUIRED
LOGIN_AND_DATA_DISCOVERY_SUCCESS
NO_STATEMENTS
LOGIN_AND_DATA_DISCOVERY_SUCCESS
LOGIN_FAILURE
INVALID_CREDENTIALS
WEBSITE_DOWN
PROVIDER_WEBSITE_INACCESSIBLE
UNDER_REVIEW
ISSUE_UNDER_REVIEW
NAVIGATION_FAILURE
PROVIDER_WEBSITE_NAVIGATION_FAILURE
UNSUPPORTED_CAPTCHA
UNSUPPORTED_CAPTCHA
MULTI_FACTOR_AUTH_FAILURE
MULTI_FACTOR_AUTHENTICATION_FAILURE
MULTI_FACTOR_AUTH_NOT_IMPLEMENTED
UNSUPPORTED_MULTI_FACTOR_AUTHENTICATION
MULTI_FACTOR_AUTH_TIMEOUT
MULTI_FACTOR_AUTHENTICATION_TIMEOUT
MULTI_FACTOR_AUTH_REFRESH_REQUIRED
MULTI_FACTOR_AUTHENTICATION_REFRESH_REQUIRED
LOGIN_AND_INTERVALS_DISCOVERY_SUCCESS
LOGIN_AND_INTERVALS_DISCOVERY_SUCCESS
LOGIN_SUCCESS_INTERVALS_DISCOVERY_FAILURE
LOGIN_SUCCESS_INTERVALS_DISCOVERY_FAILURE
DATA_EXTRACTION_IN_PROGRESS
DATA_EXTRACTION_IN_PROGRESS
REQUIRES_ENROLLMENT
REQUIRES_ENROLLMENT
EMAIL_APPROVAL
EMAIL_APPROVAL
UNSUCCESSFUL_EMAIL_APPROVAL
UNSUCCESSFUL_EMAIL_APPROVAL
USER_REVOKED_ACCESS
USER_REVOKED_ACCESS
PROVIDER_REGISTRATION_INCOMPLETE
PROVIDER_REGISTRATION_INCOMPLETE
DATA_EXTRACTION_NOT_REQUESTED
DATA_EXTRACTION_NOT_REQUESTED
GUEST_ACCESS_SYNC_INCOMPLETE
GUEST_ACCESS_SYNC_INCOMPLETE
GUEST_ACCESS_CONFIGURATION_IN_PROGRESS
GUEST_ACCESS_CONFIGURATION_IN_PROGRESS
GUEST_ACCESS_CONFIGURATION_FAILURE
GUEST_ACCESS_CONFIGURATION_FAILURE
GUEST_ACCESS_NOT_SUPPORTED
GUEST_ACCESS_NOT_SUPPORTED
GUEST_ACCESS_REMOVED
GUEST_ACCESS_REMOVED
USER_ACTION_REQUIRED
OTHER_ACCESS_LIMITATION
LIMITED_ACCESS
OTHER_ACCESS_LIMITATION
ACCOUNT_LOCKED
OTHER_ACCESS_LIMITATION
SECURITY_QUESTIONS
OTHER_ACCESS_LIMITATION
E_BILL_REQUIRED
OTHER_ACCESS_LIMITATION
PROVIDER_ISSUE
OTHER_ACCESS_LIMITATION
STATEMENT_UNAVAILABLE
OTHER_ACCESS_LIMITATION
NO_ACCOUNTS_FOUND
OTHER_ACCESS_LIMITATION
LOGIN_ATTEMPTS_EXCEEDED
OTHER_ACCESS_LIMITATION
ACCOUNT_SETUP_REQUIRED
OTHER_ACCESS_LIMITATION
9.5 File Status
UC Value
Plug Value
QUEUED
QUEUED
IN_PROGRESS
IN_PROGRESS
SUCCESS
SUCCESS
REJECTED
FAILURE
COVERAGE_REQUEST
COVERAGE_REQUEST
Note: Files can go back and be reprocessed after initial success.
9.6 Webhook Status
UC Value
Plug Value
SUCCESS
SUCCESS
ERROR
FAILURE
WAITING_RESEND
WAITING_RESEND
9.7 Provider Classification
UC Value
Plug Value
Description
PRIMARY
PUBLISHER
The Publisher Provider is the entity whose logo, branding, and return address appear on the utility invoice.
SECONDARY
PASS_THROUGH
A separate utility mentioned (with or without charges) on the publisher's invoice.
9.8 Deletion Log Status
UC Value
Plug Value
REQUESTED
REQUESTED
SCHEDULED
SCHEDULED
PENDING
SCHEDULED
COMPLETED
SUCCESS
ERROR
FAILURE
9.9 Download Status
UC Value
Plug Value
SUCCESS
SUCCESS
PENDING
PREPARING
FAILED
FAILURE
EMAIL_FAILED
FAILURE
NO_CONTENT
NO_CONTENT
9.10 Address Type
UC Value
Plug Value
Description
FULL
FULL
Address has been fully normalized and validated
PARTIAL
PARTIAL
Address was only partially normalized
RAW
CUSTOMER_PREFERRED
Address is used exactly as provided by the customer, with no normalization or processing applied
Why the rename? In UC, RAW meant "no address processing was applied — this is the address exactly as the customer provided it." Plug renamed this to CUSTOMER_PREFERRED to better communicate what the value actually represents: this is the address format the customer wants used. The underlying behavior is identical — no normalization is performed. The name was changed because "raw" implied the data was incomplete or unfinished, when in reality the customer intentionally provided it this way (e.g., when creating a site via the API).
9.11 Data Ingestion Method (New in Plug)
Maps from UC's StatementOrigin:
UC origin Value
Plug dataIngestionMethod Value
FILE_UPLOAD
BILL_UPLOAD
WEB_NAVIGATION
UTILITY_WEBSITE_ACCESS
(default)
UTILITY_WEBSITE_ACCESS
9.12 Service Type Classification (New in Plug)
New classification that categorizes service types:
The Plug API adds a resource field to webhook notifications that identifies which resource type triggered the webhook, making it easier to route webhook processing.
Migration Action
Update webhook event type parsing to handle new values
If you filter webhooks by event type, update your filters
Expect significantly more webhook volume (all status transitions, not just action-required)
Allowed duplicate credentials if correlationId was unique
Returns 409 Conflict if identical credentials are submitted, regardless of correlationId
Note : Clean up any lingering duplicate credentials as it makes for dirty data.
14.2 isCustomerActionRequired Flag
The Plug API adds an isCustomerActionRequired boolean to Account, Credential, and File resources. This flag indicates whether the customer needs to take action to resolve the current status.
Previously in UC, you had to interpret specific statusDetail values to determine if action was needed. Now the Plug API provides this explicitly.
14.3 connectionHealth on Credential
The Plug API adds a connectionHealth field that provides a simplified view of the credential's connection state, derived from the credential status and any alternate accesses:
CONNECTION_SUCCESS — credential or alternate access is working
CONNECTION_IN_PROGRESS — credential or alternate access setup is in progress
CONNECTION_FAILURE — credential connection has failed
CONNECTION_DEACTIVATED — credential is deactivated
Note: If no alternate access exists, the connection health will be the same as the Credential Status
14.4 Statement Versioning
The Plug API introduces statement versioning:
Field
Description
versionId
Unique version identifier
discoveredStatementId
Links to the discovered statement
isLatestVersion
Whether this is the most recent version
14.5 Service Types Changed from Strings to Objects
In UC, serviceTypes on an account was a List<String>. In Plug, it's a List<PublicServiceTypeResource>, which includes the service type name and its classification (CORE or SUPPLEMENTAL).
14.6 Meter Status Removed
UC had a meterStatus field on meters. This has been removed in Plug. Instead, meters have:
status — MeterIntervalStatus (for interval data status)
statusDetail — MeterIntervalStatusDetail
14.7 Account References on Meters Changed
UC used accountIds and accountNumbers (flat lists of strings). Plug uses an accounts list of PublicEmbeddedAccountResource objects, which provide richer information about each associated account.
14.8 correlationIds is Now a List
In UC, correlationId was a single string. In Plug, correlationIds is a List<String>, supporting multiple correlation IDs per resource. This can contain multiple values when correlation IDs are inherited from both a Credential and a File associated with the same resource.
14.9 finalBillNotice Changed to Boolean
UC
Plug
finalBillNotice (String)
isFinalBill (boolean)
14.10 Currency Code Added to Statements
Statements now include a currencyCode field (enum) for explicit currency identification.
These features are available only in the Plug API and have no UC equivalent:
15.1 Intervals & Normalized Intervals
GET /intervals — Raw interval data for meters
GET /normalizedIntervals — Normalized interval data
Associated meter fields: earliestIntervalAt, latestIntervalAt, isIntervalsProductActive, latestIntervalsCheckedAt
15.2 Expected Accounts
GET /expectedAccounts — Track expected but not yet discovered accounts
POST /expectedAccounts — Create expected accounts
Used for monitoring data discovery progress
15.3 Discovered Statements
GET /discoveredStatements — Track statement discovery before full processing
Links to statements via discoveredStatementId
15.4 Providers & Service Types Directory
GET /providers — Browse the provider directory
GET /serviceTypes — List available service types
15.5 Arcadia Connect
POST /credentials/encodedConnectUrl — Generate encoded Arcadia Connect URLs
Used for embedded credential capture flows
15.6 MFA Support
POST /credentials/{id}/mfa — Submit MFA method selection
POST /credentials/{id}/otp — Submit one-time password
multiFactorAuthenticationOptOutStatus and lastSuccessfulMultiFactorAuthenticationOptOutAt fields on credentials
15.7 Alternate Access
Credentials now include an alternateAccesses list showing alternative data access methods
Each alternate access has its own status and type
15.8 Webhook Testing
POST /webhooks/{id}/test — Send a test webhook to verify your endpoint
15.9 Sandbox Mode
X-Sandbox: true header enables sandbox mode
Separate data environment for testing without affecting production data
Sandbox/production conflicts are detected and return 409
16. Request Body Changes
16.1 Create Account
UC Field
Plug Field
Notes
accountNumber
accountNumber
Unchanged
providerId
providerId
Unchanged
enabled
isStatementsProductActive
Renamed
correlationId
correlationId
Unchanged
16.2 Update Account
UC Field
Plug Field
Notes
customData
customData
Unchanged
enabled
isStatementsProductActive
Renamed
16.3 Create Credential
UC Field
Plug Field
Notes
providerId
providerId
Unchanged
username
username
Unchanged
username2 – username4
username2 – username4
Unchanged
password
password
Unchanged
password2 – password4
password2 – password4
Unchanged
correlationId
correlationId
Unchanged
—
isInteractive
New — For a provider that supports real time credential validation, you can create a credential with interactive set as true to receive feedback if the credential is valid or invalid.
—
customerGivenWebsite
New — The website provided by the customer when creating this credential.
termsOfServiceUrl
termsOfServiceUrl
Unchanged
privacyPolicyUrl
privacyPolicyUrl
Unchanged
16.4 Create Site
All UC fields are supported plus new building detail fields:
New Plug Field
Type
Notes
area
Integer
The area of the Site in square feet.
numberOfStories
Integer
The number of stories of the Site.
yearBuilt
Integer
The year the Site was built, ranging from 1 to the current year plus 10.
buildingType
Enum
The type of building.
buildingTypeGroup
Enum
The group of building types.
hvacHeatType
Enum
The type of heating system in the Site.
hvacCoolType
Enum
The type of cooling system in the Site.
hvacVentType
Enum
The type of ventilation system in the Site.
heatingFuel
Enum
The type of heating fuel used in the Site.
isLocationRecommendationIgnored
boolean
Indicates if a site has been opted out of address verification.
16.5 Create Meter
UC Field
Plug Field
Notes
providerId
providerId
Unchanged
meterNumber
meterNumber
Unchanged
correlationId
correlationId
Unchanged
—
retailCustomerEmail
New — The customer email address associated with the account for the meter. An email will be sent to this email address to grant data sharing access.
—
electricServiceIdentifier
New — The Electric Service Identifier (ESI ID) associated with the address for the meter.
16.6 Download Requests
Download request bodies remain largely the same. Key changes:
UC Field
Plug Field
Notes
accountIds
accountIds
Unchanged
statementIds
statementIds
IDs must use Plug prefix format
startDate
startDate
Unchanged
endDate
endDate
Unchanged
outputFormat
outputFormat
Unchanged
downloadMethod
downloadMethod
Unchanged
17. Migration Checklist
Use this checklist to track your migration progress:
Pre-Migration
Obtain OAuth 2.0 API keys from the Arcadia Dashboard
Review all breaking changes in this document
Identify all UC API endpoints your application uses
Inventory all field references in your codebase
Authentication
Update authentication to use OAuth 2.0 Bearer tokens
Update base URL from https://api.urjanet.com/utility/ to https://api.arcadia.com/plug/
Add Arcadia-Version: 2024-02-21 header to all requests
Update Content-Type expectations from application/hal+json to application/json
Add X-Sandbox header support if using sandbox mode
Response Parsing
Remove _embedded wrapper parsing — use content array directly
Remove _links navigation parsing — use page metadata for pagination
Remove per-resource _links parsing
Update statement list parsing for summary format (or use /statements/details)
ID Handling
Update ID field references from entityId to id
Handle prefixed IDs (e.g., act_uuid, crd_uuid)
Update any stored IDs or ID comparison logic
Update IDs in request bodies and path parameters to use prefix format
Field Names
Update all timestamp fields (createdDate → createdAt, etc.)
Update all date-only fields (periodStart → periodStartDate, etc.)