Customer Onboarding

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

  1. A site has been created, and its site.id is known.
  2. An electricity product has been created, and its electricityProduct.id is known.
  3. The site has no existing meters.
  4. 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

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.