https://api.lumenaza.de/ (use https://api.test.lumenaza.de/ for sandbox testing)
All requests require an Authorization header:
1
Validate the Delivery Address (Recommended)
Before submitting a registration, validate the delivery address and confirm the earliest possible delivery start date. This step is optional but strongly recommended to avoid rejected registrations.Example response:Example response:
Check Earliest Delivery Start
Use thepreferred_delivery_start endpoint to determine the earliest date Lumenaza can begin delivery at the given address.Validate a Market Location ID
If you have a market location identifier (Marktlokations-ID), validate it before use:2
Preview Pricing (Optional)
Before registering, you can fetch a price estimate for a specific tariff, postal code, and annual consumption. This helps surface pricing to the end customer before they commit.Use
Example response:
offer_item_price_results to display a line-item breakdown and total_price_results for a summary view.3
Register the Consumer
Submit the consumer’s details to create a new contract in Lumenaza.Store both
Key Parameters
string
required
Consumer’s first name.
string
required
Consumer’s last name.
string
required
Consumer’s email address. Used for contract communications.
string
required
Consumer’s salutation. Must be one of:
Frau, Herr, Eheleute, Divers.boolean
required
Set to
true for business customers, false for private consumers.string
required
Street name of the delivery address.
string
required
House number of the delivery address. Maximum 5 characters.
string
required
Five-digit postal code of the delivery address. Maximum 5 characters.
string
required
City of the delivery address.
integer
required
Estimated annual electricity consumption in kWh.
string
required
Reason for the subscription. One of:
E01— New move-inE02— New connectionE03— Provider switch
string
required
Tariff identifier to assign to this consumer.
string
Required when
subscription_reason is E03. The BDEW code or name of the consumer’s current electricity provider.string
Your internal customer identifier. Maximum 32 characters. Must be unique across all consumers in your account.
string
Your internal contract identifier. Maximum 64 characters.
string
Payment method for the contract, e.g.
sepa_direct_debit or bank_transfer.string
Consumer’s IBAN for SEPA direct debit payments.
string
BIC/SWIFT code associated with
bank_data_iban.string
Date of the SEPA mandate signature (ISO 8601 format:
YYYY-MM-DD).saas_customer_id must be unique within your Lumenaza account. If you submit a duplicate value, the API will return a validation error. Use a stable internal ID (e.g. your CRM’s customer UUID) rather than a mutable identifier.Example Request Body
Success Response
HTTP 201 Createdconsumer_id and contract_id — they are required for all subsequent operations on this consumer.4
Confirm Registration Status
After registration, poll the contract endpoint to track the registration lifecycle.Replace
{userID} with the consumer_id and {contractID} with the contract_id returned in Step 3.Example response:Typically,
open_join transitions to closed_join within a few business days once the grid operator processes the switch.5
Handle the Revocation Window
While a contract is in Example response:After a successful revocation, the
open_join status, it can be revoked within 14 days of the registration date. This is the standard cancellation window before delivery is confirmed.reg_status transitions to revoked and the contract is closed. No delivery will take place.Next Steps
- Retrieve invoices: Use
GET /v3/consumers/{userID}/invoices/to fetch billing documents. - Update consumer data: Use
PATCH /v3/consumers/{userID}/to update contact or address information. - Register a producer: If your customer also generates electricity, see Register a Renewable Energy Producer.

