Customer Onboarding
This guide provides a detailed step-by-step process for onboarding a customer, setting up the necessary relationships, and creating an invoice at the end. Before proceeding with a customer, meter and contract creation, ensure the following prerequisites are met:
Prerequisites
- A site has been created, and its
site.id
is known. - An electricity product has been created, and its
electricityProduct.id
is known. - The site has no existing meters.
- An API Token has been generated and authentication is successfully set up.
Scenario Overview
The following customer details are provided post-onboarding and must be configured in Solarize via the API. These represent the minimum required information set.
Customer
- Company: Evergreen Capital
- Email: evergreen@capital.com
- Address: 10115 Berlin, Germany
Meter
- Serial: 1ISK0001
- Type: iMSys TAF-7
Contract
- Start Date: 01.01.2025
1. Create the Customer
The customer entity is independent of the site and can be created using the /v1/customers
endpoint and the values provided by the customer.
curl -X POST 'https://api.solarize.energy/v1/customers' \
-H 'Content-Type: application/json' \
-d '{
"companyName": "Evergreen Capital",
"address": {
"locality": "Berlin",
"postCode": "10115",
"country": "DE"
},
"invoiceEmail": "evergreen@capital.com",
"email": "evergreen@capital.com"
}'
2. Create the Meter
Meters are always assigned to a site. Ensure the site.id
is available to associate it with the meter. Use the /v1/meters
endpoint. Key attributes to note:
- mpo: The Metering Point Operator (MPO). Refer to the API Reference for available MPOs. For custom MPOs, contact your Customer Success Manager.
- direction: For standard onboarding scenarios, set to consumer. Adjust for other use cases.
- identifier: The unique identifier for the meter, typically matching the serial number. Ensure mapping on the implementation side if they differ.
- measuring: For TAF-7 meters, set this value to readings_accurate. Refer to the Submit Measurements section for details on other meter types.
curl -X POST 'https://api.solarize.energy/v1/meters' \
-H 'Content-Type: application/json' \
-d '{
"siteId": "<SITE_ID>",
"mpo": "<MPO_ID>",
"direction": "consumer",
"identifier": "1ISK0001",
"serial": "1ISK0001",
"startDate": "2024-12-31T23:00:00.000Z",
"measuring": "readings_accurate"
}'
3. Create the Contract
Contracts link the customer, meter and electricity product. The process involves two steps: creating the contract and assigning the meter to the contract. Key attributes to note:
- number: A unique number that identifies the contract within the account.
Step 1: Create the Contract
curl -X POST 'https://api.solarize.energy/v1/contracts' \
-H 'Content-Type: application/json' \
-d '{
"customerId": "<CUSTOMER_ID>",
"electricityProductId": "<ELECTRICITY_PRODUCT_ID>",
"startDate": "2025-01-01",
"number": "0001"
}'
Step 2: Assign the Meter to the Contract
curl -X POST 'https://api.solarize.energy/v1/contract-meters' \
-H 'Content-Type: application/json' \
-d '{
"contractId": "<CONTRACT_ID>",
"siteId": "<SITE_ID>",
"meterId": "<METER_ID>",
"startDate": "2025-01-01"
}'
4. Configure the Meter Balancing Settings (For Balanced Sites Only)
For balanced sites (site.type = balanced_accurate|balanced_inaccurate
), only balanced values will be invoiced. Ensure the meter is configured as balanced starting from the contract start date by creating a balancing setting. Key attributes to note:
- priority: Set to null to distribute energy equally between all consumers. Adjust as needed for specific requirements.
curl -X POST 'https://api.solarize.energy/v1/meter-balancing-settings' \
-H 'Content-Type: application/json' \
-d '{
"siteId": "<SITE_ID>",
"meterId": "<METER_ID>",
"balancing": "balancing",
"startDate": "2025-01-01",
"priority": null
}'
Once measurements have been ingested into the platform, the customer with the associated meter will be invoiced in the next bill run for the specified timeframe.