> ## 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 electric vehicle

> Create a new electric vehicle 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}/electric-vehicles
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}/electric-vehicles:
    post:
      tags:
        - User Electric Vehicles
      summary: Register a user's electric vehicle
      description: >-
        Create a new electric vehicle for a specific user under a specific
        organization, with a JSON payload.
      operationId: >-
        integrations_api_api_v2_organizations_users_electric_vehicles_router_create_electric_vehicle
      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 electric vehicle belongs to
            format: uuid
            title: User Id
            type: string
          required: true
          description: The user ID of the user whom the electric vehicle belongs to
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
                - $ref: '#/components/schemas/ElectricVehicleInput'
                - type: 'null'
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ElectricVehicleOutput'
      security:
        - OAuth2: []
components:
  schemas:
    ElectricVehicleInput:
      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'
        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
        charge_target_min:
          anyOf:
            - type: integer
            - type: 'null'
          default: 50
          title: Minimum vehicle charge level
        is_charge_policy_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Charge Policy enabled
        minimum_charge_limit:
          anyOf:
            - type: integer
            - type: 'null'
          default: 100
          title: Charge level that must be reached
        charge_deadline_at:
          anyOf:
            - format: time
              type: string
            - type: 'null'
          default: '06:00:00'
          title: Time when charge limit must be reached
        is_over_charge_allowed:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Charge beyond limit allowed
        expected_max_charge_power:
          default: 3600
          title: Expected charge power for charging schedule
          type: integer
        boost_active_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: >-
            Timestamp boost was activated by the workflow. NULL when no boost is
            active. Used to derive BoostState.REQUESTED — the in-flight window
            between user tap and is_charging=true. Cleared on the first observed
            is_charging=true datapoint or when boost ends.
          title: Boost Active At
        boost_for_next_session:
          default: false
          description: >-
            User tapped boost while unplugged. Workflow consumes on next session
            start (fires signal_boost on the schedule child) and auto-resets.
            Means 'don't optimize next session, charge ASAP'.
          title: Boost For Next Session
          type: boolean
        latitude:
          anyOf:
            - type: number
            - type: 'null'
          title: latest Latitude
        longitude:
          anyOf:
            - type: number
            - type: 'null'
          title: latest Longitude
        coordinates_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Coordinates Last Updated At
        geo_fence_distance_m:
          default: 100
          title: Geo Fence Distance M
          type: number
        battery_at_plug_in:
          anyOf:
            - type: number
            - type: 'null'
          description: Battery level at latest plug-in event
          title: Battery At Plug In
        minimum_solar_coverage:
          default: 1
          title: Minimum Solar Coverage
          type: number
        hems_min_export_to_start_w:
          default: 2000
          title: Hems Min Export To Start W
          type: integer
        hems_max_import_before_stopping_w:
          default: 4000
          title: Hems Max Import Before Stopping W
          type: integer
        hems_min_production_to_start_w:
          default: 3000
          title: Hems Min Production To Start W
          type: integer
        hems_min_production_before_stopping_w:
          default: 2000
          title: Hems Min Production Before Stopping W
          type: integer
      title: ElectricVehicleInput
      type: object
    ElectricVehicleOutput:
      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
        charge_target_min:
          anyOf:
            - type: integer
            - type: 'null'
          default: 50
          title: Minimum vehicle charge level
        charge_target_max:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            Detected OEM-app charge cap (percent). NULL = unknown / no cap
            detected.
          title: Maximum vehicle charge level
        is_charge_policy_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Charge Policy enabled
        charge_policy_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Last time charge policy was updated
        minimum_charge_limit:
          anyOf:
            - type: integer
            - type: 'null'
          default: 100
          title: Charge level that must be reached
        charge_deadline_at:
          anyOf:
            - format: time
              type: string
            - type: 'null'
          default: '06:00:00'
          title: Time when charge limit must be reached
        is_over_charge_allowed:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Charge beyond limit allowed
        expected_max_charge_power:
          default: 3600
          title: Expected charge power for charging schedule
          type: integer
        charge_time_remaining:
          anyOf:
            - type: integer
            - type: 'null'
          title: Remaining charge time in seconds
        charge_rate_w:
          anyOf:
            - type: integer
            - type: 'null'
          title: Current charge power in Watts
        is_fully_charged:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Fully charged
        is_plugged_in:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Plugged in
        is_charging:
          anyOf:
            - type: boolean
            - type: 'null'
          default: false
          title: Charging active
        battery_level:
          anyOf:
            - type: integer
            - type: 'null'
          title: Current battery level in percent
        driving_range:
          anyOf:
            - type: integer
            - type: 'null'
          title: Current driving range in km
        battery_capacity_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          default: '0'
          title: Total battery capacity KWh
        charge_state_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: 'DEPRECATED: Timestamp when last update was received'
        boost_for_next_session:
          default: false
          title: Boost For Next Session
          type: boolean
        latitude:
          anyOf:
            - type: number
            - type: 'null'
          title: latest Latitude
        longitude:
          anyOf:
            - type: number
            - type: 'null'
          title: latest Longitude
        coordinates_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Coordinates Last Updated At
        geo_fence_distance_m:
          default: 100
          title: Geo Fence Distance M
          type: number
        consumption_last_day_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Energy consumption of last day
        consumption_last_week_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Energy consumption of last week
        consumption_last_month_kwh:
          anyOf:
            - type: number
            - type: string
            - type: 'null'
          title: Energy consumption of last month
        consumption_last_updated_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Timestamp of last consumption update
        battery_at_plug_in:
          anyOf:
            - type: number
            - type: 'null'
          description: Battery level at latest plug-in event
          title: Battery At Plug In
        minimum_solar_coverage:
          default: 1
          title: Minimum Solar Coverage
          type: number
        hems_min_export_to_start_w:
          default: 2000
          title: Hems Min Export To Start W
          type: integer
        hems_max_import_before_stopping_w:
          default: 4000
          title: Hems Max Import Before Stopping W
          type: integer
        hems_min_production_to_start_w:
          default: 3000
          title: Hems Min Production To Start W
          type: integer
        hems_min_production_before_stopping_w:
          default: 2000
          title: Hems Min Production Before Stopping W
          type: integer
        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
        boost_state:
          allOf:
            - $ref: '#/components/schemas/BoostState'
          default: unavailable
        boost_feature_enabled:
          default: true
          title: Boost Feature Enabled
          type: boolean
        last_boost_triggered_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Last Boost Triggered At
        last_boost_ended_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Last Boost Ended At
        last_boost_end_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Boost End Reason
      required:
        - connection_status
        - monitoring_status
        - steering_status
        - device_model
        - owner
        - created_at
        - updated_at
      title: ElectricVehicleOutput
      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
    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
    BoostState:
      enum:
        - available
        - requested
        - unavailable
        - ongoing
      title: BoostState
      type: string
    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: {}

````