> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lumenaza.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Get v3customers contracts product info

> The Product info shows periods with unique prices for all contract's products
in a requested time period. The periods are made up of the shortest possible
validity periods between ProductItems and CostItems connected to the Product.

The requested start/end times are restricted as follows:
- start_date
    - must be before end_date
    - if not supplied, defaults to the order_date of the contract
- end_date
    - the earliest of either the requested time, delivery_end or today
    (as there may be a price change tomorrow that is not yet known)



## OpenAPI

````yaml /lumx_openapi.yaml get /v3/customers/{customer_id}/contracts/{contract_id}/product_info/
openapi: 3.0.3
info:
  title: Lumenaza external API
  version: 3.8.0 (v3)
  description: Specification of the Lumenaza external API.
servers:
  - url: https://api.lumenaza.de/
    description: Produktivserver
  - url: https://api.test.lumenaza.de/
    description: Testserver
security: []
tags:
  - name: Community Data API
    description: >-
      The API is used to retrieve master data and measurement data for a
      community. A community is defined by all customers that belong to your
      company.
paths:
  /v3/customers/{customer_id}/contracts/{contract_id}/product_info/:
    get:
      tags:
        - customers
      description: >-
        The Product info shows periods with unique prices for all contract's
        products

        in a requested time period. The periods are made up of the shortest
        possible

        validity periods between ProductItems and CostItems connected to the
        Product.


        The requested start/end times are restricted as follows:

        - start_date
            - must be before end_date
            - if not supplied, defaults to the order_date of the contract
        - end_date
            - the earliest of either the requested time, delivery_end or today
            (as there may be a price change tomorrow that is not yet known)
      operationId: customers_contracts_product_info_retrieve
      parameters:
        - in: path
          name: contract_id
          schema:
            type: string
          required: true
        - in: path
          name: customer_id
          schema:
            type: string
          required: true
        - in: query
          name: end_date
          schema:
            type: string
            format: date
          required: true
        - in: query
          name: start_date
          schema:
            type: string
            format: date
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductInfoResponse'
          description: ''
        '400':
          description: >-
            Bad Request (validation of start and end dates / not implemented
            product component / not fully registered contract)
        '404':
          description: Contract not found for the given salespartner of the api user
components:
  schemas:
    ProductInfoResponse:
      type: object
      description: >-
        The Product info shows periods with unique prices for a contract's
        product und

        a requested time period. The periods are made up of the shortest
        possible validity

        periods between ProductItems and CostItems connected to the Product.
      properties:
        contract_id:
          type: string
          description: Contract ID of the contract that the product belongs to.
        customer_id:
          type: string
          description: Customer ID of the customer that the product belongs to.
        product_infos:
          type: array
          items:
            $ref: '#/components/schemas/ProductInfo'
          description: >-
            List of Product Info instances. One per product that has been active
            in the requested time range.
      required:
        - contract_id
        - customer_id
        - product_infos
    ProductInfo:
      type: object
      properties:
        product_name:
          type: string
          description: Name of the product
        display_name:
          type: string
          description: Display name of the product.
        minimum_contract_term:
          type: integer
          description: >-
            The minimum time frame in months where the contract cannot be
            cancelled.
        contract_notice_period:
          type: integer
          description: >-
            The minimum time frame until the next possible contract termination
            date.
        contract_notice_period_unit:
          type: string
          description: >-
            The unit of the contract_notice_period. Either "m" (months) or "w"
            (weeks).
        product_valid_from:
          type: string
          format: date
        product_valid_until:
          type: string
          format: date
          nullable: true
          description: End date until which the product is valid.
        periods:
          type: array
          items:
            $ref: '#/components/schemas/Period'
          description: List of periods with unique pricing data for the product.
      required:
        - contract_notice_period
        - contract_notice_period_unit
        - display_name
        - minimum_contract_term
        - periods
        - product_name
        - product_valid_from
    Period:
      type: object
      properties:
        period_start:
          type: string
          format: date
        period_end:
          type: string
          format: date
          nullable: true
          description: End date of the period with unique price information.
        product_items:
          type: array
          items:
            $ref: '#/components/schemas/ProductItemInfo'
          description: List of product items that are applicable during this period.
        totals:
          type: array
          items:
            $ref: '#/components/schemas/TotalPricePerUnit'
          description: >-
            List of totals for the period. One entry per unit (e.g. one with
            cent/year and one with cent/kwh).
        variable_costs:
          type: array
          items:
            $ref: '#/components/schemas/VariableCost'
          description: >-
            List of variable costs that are active during this period. Since the
            costs are variable,they are not included in the totals. They are
            also not listed in the costs of the product_items. To get further
            information on these variable costs, dedicated endpoints should be
            used.

            Example: spot market price -> spot market price api endpoint.
      required:
        - period_start
        - product_items
        - totals
        - variable_costs
    ProductItemInfo:
      type: object
      properties:
        valid_from:
          type: string
          format: date
        valid_until:
          type: string
          format: date
          nullable: true
          description: Validity end of the product item.
        unit:
          allOf:
            - $ref: '#/components/schemas/UnitC46Enum'
          description: >-
            Unit of the product item. Only costs with this unit are associated
            to this product item.


            * `ct/kWh` - cent per kWh

            * `ct` - cent

            * `ct/y` - cent per year

            * `ct/m` - cent per month

            * `1/100` - percent

            * `kWh` - kWh

            * `m` - months
        amount_gross:
          type: number
          format: double
          description: >-
            Gross price of the product item in the unit of the product item. Sum
            of all associated costs.
        amount_net:
          type: number
          format: double
          description: >-
            Net price of the product item in the unit of the product item. Sum
            of all associated costs.
        classification:
          type: string
          description: Name of the product item. Corresponds to ProductItem.classification
        display_name:
          type: string
          description: Display name of the product item.
        associated_costs:
          type: array
          items:
            $ref: '#/components/schemas/FixedCost'
          description: >-
            List of associated costs of the product item. Corresponds to
            CostItems. Only costs with known values are included. See
            variable_costs for unknown costs.
        internal_name:
          type: string
          description: Internal name of the product item. Corresponds to ProductItem.name
      required:
        - amount_gross
        - amount_net
        - associated_costs
        - classification
        - display_name
        - internal_name
        - unit
        - valid_from
    TotalPricePerUnit:
      type: object
      properties:
        total_price_net:
          type: number
          format: double
        total_price_gross:
          type: number
          format: double
        unit:
          $ref: '#/components/schemas/UnitC46Enum'
      required:
        - total_price_gross
        - total_price_net
        - unit
    VariableCost:
      type: object
      properties:
        cost_type:
          type: string
        unit:
          $ref: '#/components/schemas/UnitC46Enum'
        valid_from:
          type: string
          format: date
        valid_until:
          type: string
          format: date
          nullable: true
        name:
          type: string
          description: Internal name of the variable cost.
        value:
          type: number
          format: double
          maximum: 1e+99
          minimum: -1e+99
          exclusiveMaximum: true
          exclusiveMinimum: true
          nullable: true
          description: >-
            Value with additional information on the variable cost. Can be a
            float or a string.

            Example: percentage_service_fee_on_feedin_payout -> 3 % -> float
        explanation:
          type: string
          description: >-
            Explanation of the variable cost.

            Example: percentage_service_fee_on_feedin_payout: A percentage of
            the feed-in payout is charged as a service fee.
        display_name:
          type: string
          description: Display name of the product item.
      required:
        - cost_type
        - display_name
        - name
        - unit
        - valid_from
    UnitC46Enum:
      enum:
        - ct/kWh
        - ct
        - ct/y
        - ct/m
        - 1/100
        - kWh
        - m
      type: string
      description: |-
        * `ct/kWh` - cent per kWh
        * `ct` - cent
        * `ct/y` - cent per year
        * `ct/m` - cent per month
        * `1/100` - percent
        * `kWh` - kWh
        * `m` - months
    FixedCost:
      type: object
      properties:
        name:
          type: string
        unit:
          $ref: '#/components/schemas/UnitC46Enum'
        valid_from:
          type: string
          format: date
        valid_until:
          type: string
          format: date
          nullable: true
        cost_per_unit_net:
          type: number
          format: double
        cost_per_unit_gross:
          type: number
          format: double
        display_name:
          type: string
          description: Display name of the product item.
      required:
        - cost_per_unit_gross
        - cost_per_unit_net
        - display_name
        - name
        - unit
        - valid_from

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.