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

# Register a user's solar inverter

> Create a new solar inverter for a specific user under a specific organization, with a JSON payload.



## OpenAPI

````yaml https://app.podero.com/api/partners/v2.0/openapi.json post /api/partners/v2.0/org/{org_id}/users/{user_id}/inverters
openapi: 3.1.0
info:
  title: Podero Partner API
  version: '2.0'
  description: >-
    This API provides a unified interaction point for Podero's partner
    companies.


    The goal of this API is to give partners easily integratable endpoints that
    don't require extensive software

    development. For this reason, the endpoints focus around user and device
    management, setting of preferences

    and high level device controls.


    While direct control of devices is implemented for special use cases such as
    pause power, we abstract away low level

    direct device steering so developers and partners can focus on delivering
    maximum value to end users.
  termsOfService: https://www.podero.com/terms-and-conditions
servers: []
security: []
paths:
  /api/partners/v2.0/org/{org_id}/users/{user_id}/inverters:
    post:
      tags:
        - User Solar Inverters
      summary: Register a user's solar inverter
      description: >-
        Create a new solar inverter for a specific user under a specific
        organization, with a JSON payload.
      operationId: >-
        integrations_api_api_v2_organizations_users_inverters_router_create_inverter
      parameters:
        - in: path
          name: org_id
          schema:
            description: The organization ID of the user's organization
            format: uuid
            title: Org Id
            type: string
          required: true
          description: The organization ID of the user's organization
        - in: path
          name: user_id
          schema:
            description: The user ID of the user whom the solar inverter belongs to
            format: uuid
            title: User Id
            type: string
          required: true
          description: The user ID of the user whom the solar inverter belongs to
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - $ref: '#/components/schemas/InverterInput'
                - type: 'null'
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InverterOutput'
      security:
        - OAuth2: []
components:
  schemas:
    InverterInput:
      properties:
        is_pause_power_active:
          default: false
          title: Pause function currently active
          type: boolean
        is_smart_optimization_active:
          default: false
          title: Smart Optimization Active
          type: boolean
        device_model:
          anyOf:
            - $ref: '#/components/schemas/DeviceModelInput'
            - type: 'null'
        battery_policy:
          anyOf:
            - $ref: '#/components/schemas/BatteryPolicy'
            - type: 'null'
        price_zone:
          allOf:
            - $ref: '#/components/schemas/PriceZone'
          default: AT
        deleted_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: When set, the device is considered deleted.
          title: Soft-deleted at
        lifecycle_state:
          default: authenticated
          maxLength: 20
          title: Lifecycle state
          type: string
        lifecycle_error:
          anyOf:
            - type: string
            - type: 'null'
          description: Error metadata when lifecycle_state is 'error'.
          title: Lifecycle error details
        pause_power_until:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Pause power consumption until
        optimization_score:
          anyOf:
            - type: number
            - type: 'null'
          title: Optimization Score
        comment:
          anyOf:
            - maxLength: 300
              type: string
            - type: 'null'
          title: Comment
        last_monitoring_executed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Last Monitoring Executed At
        is_inverter_forced_mode_enabled:
          default: false
          title: Is Inverter Forced Mode Enabled
          type: boolean
        is_trading_enabled:
          default: false
          title: Is Trading Enabled
          type: boolean
        actual_steering_state:
          default: unknown
          maxLength: 20
          title: Actual Steering State
          type: string
        solar_power_rating_kw:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Rating of solar installation in kW
        battery_capacity_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Battery capacity in kWh
        is_battery_connected:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Battery connected to inverter
        is_curtailment_active:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Curtailment active
        max_battery_charge:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Maximum battery percentage value for optimization
        min_battery_charge:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Minimum battery percentage value for optimization
        user_limits_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: User Limits Enabled
        current_power_to_grid_w:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Current Power To Grid W
        inferred_max_charge_power_w:
          anyOf:
            - type: number
            - type: 'null'
          title: Inferred Max Charge Power W
        inferred_max_discharge_power_w:
          anyOf:
            - type: number
            - type: 'null'
          title: Inferred Max Discharge Power W
        inferred_min_battery_soc_percent:
          anyOf:
            - type: number
            - type: 'null'
          title: Inferred Min Battery Soc Percent
        inferred_battery_capacity_kwh:
          anyOf:
            - type: number
            - type: 'null'
          title: Inferred Battery Capacity Kwh
        inferred_params_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Inferred Params Updated At
        has_ev_in_household:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Has Ev In Household
        ev_inferred_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Ev Inferred At
        ev_inference_confidence:
          anyOf:
            - type: number
            - type: 'null'
          description: 0.0–1.0; saturates at 16 EV-charging bouts in 30 days
          title: Ev Inference Confidence
      title: InverterInput
      type: object
    InverterOutput:
      properties:
        connection_status:
          enum:
            - ok
            - warning
            - error
            - unknown
          title: Connection Status
          type: string
        monitoring_status:
          enum:
            - ok
            - warning
            - error
            - unknown
          title: Monitoring Status
          type: string
        steering_status:
          enum:
            - ok
            - warning
            - error
            - unknown
          title: Steering Status
          type: string
        device_model:
          anyOf:
            - $ref: '#/components/schemas/DeviceModelOutput'
            - type: 'null'
        owner:
          $ref: '#/components/schemas/OwnerOutput'
        price_zone:
          allOf:
            - $ref: '#/components/schemas/PriceZone'
          default: AT
        id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Id
        created_at:
          format: date-time
          title: Created At
          type: string
        updated_at:
          format: date-time
          title: Updated At
          type: string
        deleted_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: When set, the device is considered deleted.
          title: Soft-deleted at
        lifecycle_state:
          default: authenticated
          maxLength: 20
          title: Lifecycle state
          type: string
        lifecycle_error:
          anyOf:
            - type: string
            - type: 'null'
          description: Error metadata when lifecycle_state is 'error'.
          title: Lifecycle error details
        pause_power_until:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Pause power consumption until
        is_pause_power_active:
          default: false
          title: Pause function currently active
          type: boolean
        external_device_id:
          anyOf:
            - maxLength: 255
              type: string
            - type: 'null'
          default: ''
          title: External Device Id
        is_authenticated:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Is Authenticated
        is_smart_optimization_active:
          default: false
          title: Smart Optimization Active
          type: boolean
        optimization_score:
          anyOf:
            - type: number
            - type: 'null'
          title: Optimization Score
        current_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Mode
        comment:
          anyOf:
            - maxLength: 300
              type: string
            - type: 'null'
          title: Comment
        current_state_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Current State Last Updated At
        last_monitoring_executed_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Last Monitoring Executed At
        is_inverter_forced_mode_enabled:
          default: false
          title: Is Inverter Forced Mode Enabled
          type: boolean
        is_inverter_forced_mode_active:
          default: false
          title: Is Inverter Forced Mode Active
          type: boolean
        inverter_forced_mode_since:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          default: '0001-01-01T00:00:00Z'
          title: Inverter Forced Mode Since
        is_trading_enabled:
          default: false
          title: Is Trading Enabled
          type: boolean
        actual_steering_state:
          default: unknown
          maxLength: 20
          title: Actual Steering State
          type: string
        solar_power_rating_kw:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Rating of solar installation in kW
        battery_capacity_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Battery capacity in kWh
        is_battery_connected:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Battery connected to inverter
        is_curtailment_active:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Curtailment active
        max_battery_charge:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Maximum battery percentage value for optimization
        min_battery_charge:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Minimum battery percentage value for optimization
        user_limits_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: User Limits Enabled
        information_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Information Last Updated At
        battery_policy:
          anyOf:
            - maxLength: 100
              type: string
            - type: 'null'
          default: Optimize self consumption
          title: Battery Policy
        battery_policy_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Battery Policy Last Updated At
        current_solar_production_w:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Current Solar Production W
        current_power_to_grid_w:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Current Power To Grid W
        household_consumption_w:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Household Consumption W
        solar_surplus_w:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Solar Surplus W
        battery_charge_discharge_power_w:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Battery Charge Discharge Power W
        battery_charge_level_percent:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Battery Charge Level Percent
        production_last_day_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Production Last Day Kwh
        production_last_week_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Production Last Week Kwh
        production_last_month_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Production Last Month Kwh
        production_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Timestamp of last production update
        needs_gateway:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Needs Gateway
        inferred_max_charge_power_w:
          anyOf:
            - type: number
            - type: 'null'
          title: Inferred Max Charge Power W
        inferred_max_discharge_power_w:
          anyOf:
            - type: number
            - type: 'null'
          title: Inferred Max Discharge Power W
        inferred_min_battery_soc_percent:
          anyOf:
            - type: number
            - type: 'null'
          title: Inferred Min Battery Soc Percent
        inferred_battery_capacity_kwh:
          anyOf:
            - type: number
            - type: 'null'
          title: Inferred Battery Capacity Kwh
        inferred_params_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Inferred Params Updated At
        has_ev_in_household:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Has Ev In Household
        ev_inferred_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Ev Inferred At
        ev_inference_confidence:
          anyOf:
            - type: number
            - type: 'null'
          description: 0.0–1.0; saturates at 16 EV-charging bouts in 30 days
          title: Ev Inference Confidence
        embeddable_url:
          anyOf:
            - type: string
            - type: 'null'
          description: URL to embeddable onboarding form
          title: Embeddable Url
        authorization_url:
          anyOf:
            - type: string
            - type: 'null'
          description: Base URL for authorizing with the Podero server
          title: Authorization Url
        action_needed:
          default: false
          description: >-
            True when at least one action is pending against this device and the
            partner must take that action before the device can resume normal
            operation. The `actions` field on the detail response carries the
            specifics.
          title: Action Needed
          type: boolean
        has_notification:
          default: false
          description: >-
            True when the device has at least one unread information
            notification for the owner.
          title: Has Notification
          type: boolean
      required:
        - connection_status
        - monitoring_status
        - steering_status
        - device_model
        - owner
        - created_at
        - updated_at
      title: InverterOutput
      type: object
    DeviceModelInput:
      properties:
        device_type:
          $ref: '#/components/schemas/DeviceTypeOutput'
        manufacturer:
          maxLength: 255
          title: Manufacturer or brand
          type: string
        model:
          maxLength: 255
          title: Model
          type: string
        year:
          anyOf:
            - type: integer
            - type: 'null'
          title: Model year (if available)
        cloud_service_id:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Cloud Service
      required:
        - device_type
        - manufacturer
        - model
      title: DeviceModelInput
      type: object
    BatteryPolicy:
      enum:
        - Optimize self consumption
        - Optimize grid balancing
        - Export all
      title: BatteryPolicy
      type: string
    PriceZone:
      enum:
        - AT
        - AT_HOURLY
        - BE
        - CH
        - EE
        - DE_LU
        - HU
        - IT_CNOR
        - IT_CSUD
        - IT_NORD
        - IT_PUN
        - IT_SARD
        - IT_SICI
        - IT_SUD
        - PT
        - RO
        - SE_1
        - SE_2
        - SE_3
        - SE_4
        - UK
      title: PriceZone
      type: string
    DeviceModelOutput:
      properties:
        device_type:
          $ref: '#/components/schemas/DeviceTypeOutput'
        cloud_service_instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Cloud Service Instructions
        cloud_service_signup_link:
          anyOf:
            - type: string
            - type: 'null'
          title: Cloud Service Signup Link
        manufacturer:
          maxLength: 255
          title: Manufacturer or brand
          type: string
        model:
          maxLength: 255
          title: Model
          type: string
        year:
          anyOf:
            - type: integer
            - type: 'null'
          title: Model year (if available)
        cloud_service:
          anyOf:
            - format: uuid
              type: string
            - type: 'null'
          title: Cloud Service
      required:
        - device_type
        - manufacturer
        - model
      title: DeviceModelOutput
      type: object
    OwnerOutput:
      properties:
        id:
          format: uuid
          title: Id
          type: string
        email:
          anyOf:
            - type: string
            - type: 'null'
          title: Email
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: First Name
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Name
        external_id:
          anyOf:
            - type: string
            - type: 'null'
          title: External Id
      required:
        - id
      title: OwnerOutput
      type: object
    DeviceTypeOutput:
      properties:
        short_name:
          maxLength: 255
          title: String identifier of device type
          type: string
        long_name:
          maxLength: 255
          title: Description of device type
          type: string
      required:
        - short_name
        - long_name
      title: DeviceTypeOutput
      type: object
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        password:
          tokenUrl: /api/partners/v2.0/auth/token
          scopes: {}
        clientCredentials:
          tokenUrl: /api/partners/v2.0/auth/token
          scopes: {}

````