# Getting Started 1. [Confirm you're on the right API (XMS).](#1-confirm-youre-using-the-right-api) 2. [Get an account and API key (one per installer).](#2-confirm-account--api-key-setup) 3. [Request sandbox/UAT access (send email + IP addresses).](#3-request-sandbox--uat-access) 4. [Get your assigned technical point of contact.](#4-identify-your-point-of-contact) 5. [Build the 4-step registration flow (create → check eligibility → upload docs → complete).](#5-build-against-the-standard-registration-flow) 6. [Test in sandbox, then go live.](#6-know-before-you-build) ## 1. Confirm You're Using the Right API SREC facility registration integrations use the Xpansiv Managed Solutions (XMS) API. - Base URL: https://www.ms.xpansiv.com/app/api/v1 - Auth: HTTP Bearer — see the [Authentication](/developer-portal/xpansiv-managed-solutions/authorization) page for how to generate and use your API key ## 2. Confirm Account & API Key Setup 1. Each installer/account needs its own Xpansiv Managed Solutions account; there is no shared or platform-wide key across installers. 2. Generate your API key from the API Access page under "Xpansiv Managed Solutions Internal API" — see the [Authentication](/developer-portal/xpansiv-managed-solutions/authorization) page for step-by-step instructions. 3. If you're building on behalf of multiple installers, plan for each installer to have its own account and key; this is by design, not a limitation to work around. ## 3. Request Sandbox / UAT Access Before testing can begin, Xpansiv needs to provision a sandbox/UAT environment for you. To request this, provide: - Email address(es) that should have access to the sandbox (e.g., a shared team credential like credentials@yourdomain.com). - The IP address(es) your systems will connect from, so they can be allow-listed. ## 4. Identify Your Point of Contact Xpansiv assigns a lead developer as the key point of contact for API questions during UAT/sandbox testing. Confirm who this is for your engagement before you start building, and route technical/API questions to them directly rather than the broader account team. ## 5. Build Against the Standard Registration Flow 1. Register a facility — `POST /facilities` 2. Get eligibility and required documents — `GET /facilities/{facility_id}/state_eligibilities` 3. Upload required documents — `POST /facilities/{facility_id}/documents` 4. Complete the facility application — `POST /facilities/{facility_id}/complete` See the OpenAPI Specs for field-level details on each step. ## 6. Know Before You Build - Required document lists are state-specific — always pull the live list from the State Eligibilities endpoint rather than relying on any single example in the docs. - Some fields marked "not required" become conditionally required depending on other field values or the facility's state (e.g., `hostname` is required only if `system_leased` is true and the facility is in DC or MD). Always validate against the specific facility's conditions rather than a field's default "required" status. - Some required fields (`system_cost`, `utility_name`, `utility_account_number`) may need to be sourced from a third-party design tool; if not already in your own system, plan for this data-mapping step early. - Only zero-fee or fee-waived states can be completed automatically via the Complete Facility Application endpoint. Confirm the current list with the Xpansiv team and plan a manual/semi-automated fallback for other states.