> ## 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.

# Post Settings

> Save the settings. The organization's fields cannot be written here: a document that carries
one is a 422.



## OpenAPI

````yaml https://app.podero.com/api/partners/v2.0/openapi.json post /api/partners/v2.0/org/{org_id}/settings
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.


    ## Authentication


    Send an OAuth2 access token in the `Authorization: Bearer <access_token>`
    header of each request.

    A token request must have a JSON body. The token endpoints do not read a
    form-encoded body.


    Server-to-server integrations use the client credentials grant:


    ```http

    POST /oauth2/token/

    Authorization: Basic base64(<client_id>:<client_secret>)

    Content-Type: application/json


    {"grant_type": "client_credentials"}

    ```


    The response does not contain a refresh token. The access token expires
    after `expires_in` seconds (one hour).

    To renew it, send the same request again. Use one token for all requests
    until shortly before it expires.

    Do not request a new token for each request. If a request returns `401`, get
    one new token and send the request

    again once. If it returns `401` again, the token is valid but the
    application has no access to that resource,

    and a new token does not change that.


    Apps where a person signs in use the password grant at `POST
    /api/partners/v2.0/auth/token`, and renew the

    session with the `refresh_token` grant at the same endpoint.
  termsOfService: https://www.podero.com/terms-and-conditions
servers: []
security: []
paths:
  /api/partners/v2.0/org/{org_id}/settings:
    post:
      tags:
        - Organization Configuration
      summary: Post Settings
      description: >-
        Save the settings. The organization's fields cannot be written here: a
        document that carries

        one is a 422.
      operationId: >-
        integrations_api_api_v2_organizations_configuration_organization_settings_router_post_settings
      parameters:
        - in: path
          name: org_id
          schema:
            format: uuid
            title: Org Id
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsInput'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsOutput'
      security:
        - OAuth2: []
components:
  schemas:
    SettingsInput:
      additionalProperties: false
      properties:
        revision:
          anyOf:
            - maxLength: 64
              type: string
            - type: 'null'
          title: Revision
        settings:
          $ref: '#/components/schemas/SettingsValues'
      required:
        - revision
        - settings
      title: SettingsInput
      type: object
    SettingsOutput:
      properties:
        revision:
          title: Revision
          type: string
        settings:
          $ref: '#/components/schemas/SettingsValuesOutput'
        readonly:
          $ref: '#/components/schemas/SettingsReadonly'
        permissions:
          $ref: '#/components/schemas/SettingsPermissions'
        options:
          $ref: '#/components/schemas/SettingsOptions'
      required:
        - revision
        - settings
        - readonly
        - permissions
        - options
      title: SettingsOutput
      type: object
    SettingsValues:
      additionalProperties: false
      properties:
        app_config:
          $ref: '#/components/schemas/SettingsAppConfig'
        feature_flags:
          $ref: '#/components/schemas/FeatureFlags'
        allow_notifications:
          title: Allow Notifications
          type: boolean
        allow_grid_discharge:
          title: Allow Grid Discharge
          type: boolean
        learning_phase_enabled:
          title: Learning Phase Enabled
          type: boolean
        learning_phase_days:
          maximum: 30
          minimum: 1
          title: Learning Phase Days
          type: integer
        learning_phase_probing_hours:
          minimum: 1
          title: Learning Phase Probing Hours
          type: integer
        reauthorization_link_timeout_days:
          maximum: 2147483647
          minimum: 1
          title: Reauthorization Link Timeout Days
          type: integer
        price_zone:
          title: Price Zone
          type: string
        is_smart_optimization_active_default:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Smart Optimization Active Default
        payout_scheme:
          $ref: '#/components/schemas/PayoutScheme'
        excluded_device_brand_ids:
          items:
            format: uuid
            type: string
          maxItems: 2000
          title: Excluded Device Brand Ids
          type: array
        excluded_device_type_ids:
          items:
            format: uuid
            type: string
          maxItems: 100
          title: Excluded Device Type Ids
          type: array
        blocked_ev_brand_ids:
          items:
            format: uuid
            type: string
          maxItems: 1000
          title: Blocked Ev Brand Ids
          type: array
      required:
        - app_config
        - feature_flags
        - allow_notifications
        - allow_grid_discharge
        - learning_phase_enabled
        - learning_phase_days
        - learning_phase_probing_hours
        - reauthorization_link_timeout_days
        - price_zone
        - is_smart_optimization_active_default
        - payout_scheme
        - excluded_device_brand_ids
        - excluded_device_type_ids
        - blocked_ev_brand_ids
      title: SettingsValues
      type: object
    SettingsValuesOutput:
      properties:
        app_config:
          $ref: '#/components/schemas/SettingsAppConfig'
        feature_flags:
          $ref: '#/components/schemas/FeatureFlags'
        allow_notifications:
          title: Allow Notifications
          type: boolean
        allow_grid_discharge:
          title: Allow Grid Discharge
          type: boolean
        learning_phase_enabled:
          title: Learning Phase Enabled
          type: boolean
        learning_phase_days:
          title: Learning Phase Days
          type: integer
        learning_phase_probing_hours:
          title: Learning Phase Probing Hours
          type: integer
        reauthorization_link_timeout_days:
          title: Reauthorization Link Timeout Days
          type: integer
        price_zone:
          title: Price Zone
          type: string
        is_smart_optimization_active_default:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Smart Optimization Active Default
        payout_scheme:
          title: Payout Scheme
          type: string
        excluded_device_brand_ids:
          items:
            type: string
          title: Excluded Device Brand Ids
          type: array
        excluded_device_type_ids:
          items:
            type: string
          title: Excluded Device Type Ids
          type: array
        blocked_ev_brand_ids:
          items:
            type: string
          title: Blocked Ev Brand Ids
          type: array
      required:
        - app_config
        - feature_flags
        - allow_notifications
        - allow_grid_discharge
        - learning_phase_enabled
        - learning_phase_days
        - learning_phase_probing_hours
        - reauthorization_link_timeout_days
        - price_zone
        - is_smart_optimization_active_default
        - payout_scheme
        - excluded_device_brand_ids
        - excluded_device_type_ids
        - blocked_ev_brand_ids
      title: SettingsValuesOutput
      type: object
    SettingsReadonly:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        organization_id:
          title: Organization Id
          type: string
        organization_name:
          title: Organization Name
          type: string
        created_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Created At
        updated_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Updated At
        organization:
          anyOf:
            - $ref: '#/components/schemas/PoderoOrganizationOutput'
            - type: 'null'
      required:
        - id
        - organization_id
        - organization_name
        - created_at
        - updated_at
      title: SettingsReadonly
      type: object
    SettingsPermissions:
      properties:
        can_edit:
          title: Can Edit
          type: boolean
      required:
        - can_edit
      title: SettingsPermissions
      type: object
    SettingsOptions:
      properties:
        device_brands:
          items:
            $ref: '#/components/schemas/CatalogGroup'
          title: Device Brands
          type: array
        device_types:
          items:
            $ref: '#/components/schemas/CatalogGroup'
          title: Device Types
          type: array
        ev_brands:
          items:
            $ref: '#/components/schemas/Choice'
          title: Ev Brands
          type: array
        organization:
          $ref: '#/components/schemas/OrganizationOptions'
        price_zones:
          items:
            $ref: '#/components/schemas/Choice'
          title: Price Zones
          type: array
        app_settings:
          items:
            $ref: '#/components/schemas/AppSettingOption'
          title: App Settings
          type: array
      required:
        - device_brands
        - device_types
        - ev_brands
        - organization
        - price_zones
        - app_settings
      title: SettingsOptions
      type: object
    SettingsAppConfig:
      additionalProperties: false
      properties:
        showHemsFeatureEv:
          title: Showhemsfeatureev
          type: boolean
        showHemsFeatureEvCharger:
          title: Showhemsfeatureevcharger
          type: boolean
        requireExternalUserId:
          default: false
          title: Requireexternaluserid
          type: boolean
        showHpOptimizationLevel:
          title: Showhpoptimizationlevel
          type: boolean
        showSavings:
          title: Showsavings
          type: boolean
        allowSteeringToggleHp:
          title: Allowsteeringtogglehp
          type: boolean
        allowSteeringToggleEv:
          title: Allowsteeringtoggleev
          type: boolean
        allowSteeringToggleInv:
          title: Allowsteeringtoggleinv
          type: boolean
        showSolarTab:
          title: Showsolartab
          type: boolean
        showChargingTab:
          title: Showchargingtab
          type: boolean
        showClimateTab:
          title: Showclimatetab
          type: boolean
        showExplainers:
          title: Showexplainers
          type: boolean
        showExplainersHp:
          title: Showexplainershp
          type: boolean
        showExplainersInv:
          title: Showexplainersinv
          type: boolean
      required:
        - showHemsFeatureEv
        - showHemsFeatureEvCharger
        - showHpOptimizationLevel
        - showSavings
        - allowSteeringToggleHp
        - allowSteeringToggleEv
        - allowSteeringToggleInv
        - showSolarTab
        - showChargingTab
        - showClimateTab
        - showExplainers
        - showExplainersHp
        - showExplainersInv
      title: SettingsAppConfig
      type: object
    FeatureFlags:
      additionalProperties: false
      description: >-
        The stored app switches the Console edits. A switch the organization
        never set reads false.
      properties:
        useAddressForm:
          title: Useaddressform
          type: boolean
        useNewTheme:
          title: Usenewtheme
          type: boolean
      required:
        - useAddressForm
        - useNewTheme
      title: FeatureFlags
      type: object
    PayoutScheme:
      description: >-
        Which savings figure an organization shows its customers. A display
        choice: settlement is

        ``PayoutSurplusMode`` on the payout program.


        FIXED              - the flat guarantee, the same for every device.

        MINIMUM_GUARANTEED - the device's own contribution, never below the
        guarantee.

        CONTRIBUTION_BASED - the device's own contribution, with no floor. Not
        selectable: no savings
                             figure is served for it yet. It stays because migration ``0635`` names it
                             as the field's original default.
      enum:
        - fixed
        - minimum_guaranteed
        - contribution_based
      title: PayoutScheme
      type: string
    PoderoOrganizationOutput:
      description: >-
        The organization's identity and what Podero grants it. Podero writes
        them on the Admin document.
      properties:
        name:
          title: Name
          type: string
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        contact:
          anyOf:
            - type: string
            - type: 'null'
          title: Contact
        default_currency:
          title: Default Currency
          type: string
        country:
          title: Country
          type: string
        trading_enabled:
          title: Trading Enabled
          type: boolean
        optimization_basis:
          title: Optimization Basis
          type: string
        audit_log_enabled:
          title: Audit Log Enabled
          type: boolean
      required:
        - name
        - description
        - contact
        - default_currency
        - country
        - trading_enabled
        - optimization_basis
        - audit_log_enabled
      title: PoderoOrganizationOutput
      type: object
    CatalogGroup:
      properties:
        key:
          title: Key
          type: string
        label:
          title: Label
          type: string
        category:
          title: Category
          type: string
        ids:
          items:
            type: string
          title: Ids
          type: array
        availability:
          title: Availability
          type: string
      required:
        - key
        - label
        - category
        - ids
        - availability
      title: CatalogGroup
      type: object
    Choice:
      properties:
        id:
          title: Id
          type: string
        label:
          title: Label
          type: string
      required:
        - id
        - label
      title: Choice
      type: object
    OrganizationOptions:
      properties:
        countries:
          items:
            $ref: '#/components/schemas/Choice'
          title: Countries
          type: array
        currencies:
          items:
            $ref: '#/components/schemas/Choice'
          title: Currencies
          type: array
        optimization_bases:
          items:
            $ref: '#/components/schemas/Choice'
          title: Optimization Bases
          type: array
        price_zones:
          items:
            $ref: '#/components/schemas/Choice'
          title: Price Zones
          type: array
      required:
        - countries
        - currencies
        - optimization_bases
        - price_zones
      title: OrganizationOptions
      type: object
    AppSettingOption:
      properties:
        key:
          title: Key
          type: string
        label:
          title: Label
          type: string
        description:
          title: Description
          type: string
        active:
          title: Active
          type: boolean
      required:
        - key
        - label
        - description
        - active
      title: AppSettingOption
      type: object
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        password:
          tokenUrl: /api/partners/v2.0/auth/token
          scopes: {}
        clientCredentials:
          tokenUrl: /oauth2/token/
          scopes: {}

````

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