Get v3offer calculator
The offer calculator is a device for our salespartners to create individual offers for a given tariff and given parameters.
It returns prices for all price items of the tariff, as well as the yearly, monthly and one-time total amount for the end customer. It also returns additional information such as the associated internal costs and other calculation data on which the offer is based. It is up to the front end of the salespartner which of these data to display to the (potential) end customer.
The set of required input parameters varies by tariff. Formally, only most input parameters are marked optional. But depending on the type of tariff, different input parameters are required;
| type of tariff | Required parameters |
|---|---|
| Fix price consumer products | tariff_name, zip_code, consumption |
| Spot price consumer products | tariff_name, zip_code, months_for_average_prices_and_costs |
| Producer products | tariff_name, plant_type, installed_capacity, feed_in_energy_amount, months_for_average_prices_and_costs |
If parameters are missing from input, status 400 will be returned, together with a list of missing parameters.
For some tariffs, other sets of parameters than listed above may be required. Lumenaza will communicate this to the sales partner on a per tariff basis
If zip_code is required, it may be complemented by the following parts of the street address: city, street, house_number. If the address data are not sufficient to determine the distribution net, status 300 is returned, together with a list of possible street/city-suggestions.
curl --request GET \
--url https://api.lumenaza.de/v3/offer_calculator/import requests
url = "https://api.lumenaza.de/v3/offer_calculator/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.lumenaza.de/v3/offer_calculator/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lumenaza.de/v3/offer_calculator/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lumenaza.de/v3/offer_calculator/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lumenaza.de/v3/offer_calculator/")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumenaza.de/v3/offer_calculator/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"tariff_name": "<string>",
"display_tariff_name": "<string>",
"offer_item_price_results": [
{
"name": "<string>",
"classification": "<string>",
"display_name": "<string>",
"price_net": 123,
"price_gross": 123,
"unit": "ct/kWh",
"associated_costs": [
{
"name": "<string>",
"cost_per_unit_net": 123,
"display_name": "<string>",
"unit": "ct/kWh"
}
],
"item_amount": {
"item_amount_net": 123,
"item_amount_gross": 123,
"unit": "ct/y",
"calculation_data": [
{
"name": "<string>",
"value": 123,
"unit": "ct/kWh"
}
]
},
"vat_rate": 123
}
],
"total_price_results": [
{
"total_price_net": 123,
"total_price_gross": 123,
"vat_rate": 123,
"unit": "ct/y",
"total_price_comparison_net": 123,
"total_price_comparison_gross": 123
}
]
}{
"zipcode": "<string>",
"streets": [
[
"<string>"
]
]
}Query Parameters
1The annual consumption in kWh. Will not be used for ht/nt tariffs.
x >= 1The amount which is feed into the grid in kWh
x >= 01The annual ht-consumption in kWh for ht/nt tariffs
x >= 0The capacity of the plant in Wp
x >= 0The number of past months which are used to calculate average values (like day ahead prices)
1 <= x <= 24The annual nt-consumption in kWh for ht/nt tariffs
x >= 0solar- solargas- gaswind- windwater- water
solar, gas, wind, water 1111^[0-9]{5}$Response
The tariff generally consists of several offer items. Information on those is given in offer_item_price_results. Information on the prices to be paid in total is given in total_price_results.
Price information for the individual price items.
Show child attributes
Show child attributes
Aggregated grand total to pay for the end custumer, based on theinput parameters. At least two totals will be returned. One with unit=ct/y and one with unit=ct/m. These reflect the calculated total amount per year or per month respectively.
The yearly amounts are the grand totals of the offer_item_price results.Since this a sum of already rounded values, the rounding errors can sum up to more than one cent. The yearly totals contain all expected payments, with exception of one time fees.
The monthly totals are given for convenience. Except for rounding, they equal the yearly totals divided by 12.
If there are one time fees, a third entry with unit=ct is returned.
Show child attributes
Show child attributes
curl --request GET \
--url https://api.lumenaza.de/v3/offer_calculator/import requests
url = "https://api.lumenaza.de/v3/offer_calculator/"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.lumenaza.de/v3/offer_calculator/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lumenaza.de/v3/offer_calculator/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lumenaza.de/v3/offer_calculator/"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lumenaza.de/v3/offer_calculator/")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lumenaza.de/v3/offer_calculator/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"tariff_name": "<string>",
"display_tariff_name": "<string>",
"offer_item_price_results": [
{
"name": "<string>",
"classification": "<string>",
"display_name": "<string>",
"price_net": 123,
"price_gross": 123,
"unit": "ct/kWh",
"associated_costs": [
{
"name": "<string>",
"cost_per_unit_net": 123,
"display_name": "<string>",
"unit": "ct/kWh"
}
],
"item_amount": {
"item_amount_net": 123,
"item_amount_gross": 123,
"unit": "ct/y",
"calculation_data": [
{
"name": "<string>",
"value": 123,
"unit": "ct/kWh"
}
]
},
"vat_rate": 123
}
],
"total_price_results": [
{
"total_price_net": 123,
"total_price_gross": 123,
"vat_rate": 123,
"unit": "ct/y",
"total_price_comparison_net": 123,
"total_price_comparison_gross": 123
}
]
}{
"zipcode": "<string>",
"streets": [
[
"<string>"
]
]
}
