> ## Documentation index
> Fetch the complete documentation index at: https://developer.rhombus.com/llms.txt
> Use it to discover all available pages before exploring further.

# Update partner portal company info

> Update the company profile of the authenticated partner organization. Only the fields present in the request are written; the organization name, reseller tier and the billing state and country display labels are not updatable and are rejected if supplied. A partnerType list containing the Managed Service Provider (MSP) value is rejected; that value is set by Rhombus in Salesforce.

```http
POST https://api2.rhombussystems.com/api/partnerportal/updateCompanyInfo
```

EU organizations send the same request to `https://api2.eu.rhombussystems.com`.

## Authentication and parameters

- `x-auth-apikey` (header, required): Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header set to `api-token` (or `partner-api-token` for partner endpoints).
- `Authorization` (header): instead of an API key, an OAuth access token (`Bearer <token>`) with the `write` scope.
- `x-auth-scheme` (header, string, default: `partner-api-token`): Authentication scheme identifier. Use `api-token` or `partner-api-token` with the `x-auth-apikey` header, `api` or `partner-api` with `x-auth-apikey` plus a client certificate, `api-oauth-token` or `partner-api-oauth-token` with `x-auth-access-token`, and `federated-token` with `x-auth-ft`. A request with `Authorization: Bearer <token>` and no `x-auth-scheme` is treated as OAuth, and `federated-token` may also be sent as the `x-auth-scheme` and `x-auth-ft` query parameters. One of: `api-token`, `api`, `api-oauth-token`, `federated-token`, `partner-api-token`, `partner-api`, `partner-api-oauth-token`.

## Request body

Content type: `application/json`. Request object for updating the company profile of the authenticated partner organization. Only the updatable fields appear here: there is deliberately no email and no organization field, because both are resolved from the authenticated principal, and accepting either from the body would let a caller write another partner's Account. Every field is optional, and a null value, a blank string or an empty list all leave the current value alone. Nothing can be cleared through this endpoint.

- `accessControl` (array<string | null> | null): Access control platforms the organization works with, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here.
- `alarmMonitoringApproved` (boolean | null): Whether the partner organization is approved for alarm monitoring
- `billingCity` (string | null): Billing city of the partner organization. Null or blank leaves the current value alone.
- `billingCountryCode` (string | null): Billing country as an ISO code (for example US). Only the ISO code is accepted, not the display name. Null or blank leaves the current value alone.
- `billingPostalCode` (string | null): Billing postal code of the partner organization. Null or blank leaves the current value alone.
- `billingStateCode` (string | null): Billing state as an ISO code (for example CA). Only the ISO code is accepted, not the display name, and it must be valid for the billing country. Null or blank leaves the current value alone.
- `billingStreet` (string | null): Billing street of the partner organization. Null or blank leaves the current value alone.
- `competitorsResellerOffers` (array<string | null> | null): Competitor offerings the organization also resells, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here.
- `confirmedAccessControlQualifications` (boolean | null): Whether the partner organization has confirmed its access control qualifications
- `offeredServices` (array<string | null> | null): Services the organization offers, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here.
- `partnerType` (array<string | null> | null): Partner types of the organization, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here. The Managed Service Provider (MSP) value is set by Rhombus, and a list containing it is rejected.
- `phone` (string | null): Primary phone number of the partner organization. Null or blank leaves the current value alone; it cannot be cleared here.
- `servicesGeographicCoverage` (string | null): Geographic coverage of the services the partner organization offers. Null or blank leaves the current value alone.
- `website` (string | null): Website of the partner organization. Null or blank leaves the current value alone.

## Response 200

OK. Content type: `application/json`

- `error` (boolean | null)
- `errorCode` (string | null): Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.
- `errorMsg` (string | null)
- `warningMsg` (string | null)

## Errors

Also 400, 401, 403, 429, 500, 503 with the standard error body (`errorCode`, `errorMsg`): https://developer.rhombus.com/errors

## OpenAPI

````yaml
openapi: 3.0.1
info:
  title: Rhombus API
  version: "1.0"
servers:
  - description: Production Server
    url: https://api2.rhombussystems.com
security:
  - ApiKeyAuth: []
paths:
  /api/partnerportal/updateCompanyInfo:
    post:
      description: Update the company profile of the authenticated partner organization. Only the fields present in the request are written; the organization name, reseller tier and the billing state and country display labels are not updatable and are rejected if supplied. A partnerType list containing the Managed Service Provider (MSP) value is rejected; that value is set by Rhombus in Salesforce.
      operationId: updateCompanyInfo
      parameters:
        - description: "Authentication scheme identifier. Use `api-token` or `partner-api-token` with the `x-auth-apikey` header, `api` or `partner-api` with `x-auth-apikey` plus a client certificate, `api-oauth-token` or `partner-api-oauth-token` with `x-auth-access-token`, and `federated-token` with `x-auth-ft`. A request with `Authorization: Bearer <token>` and no `x-auth-scheme` is treated as OAuth, and `federated-token` may also be sent as the `x-auth-scheme` and `x-auth-ft` query parameters."
          example: partner-api-token
          in: header
          name: x-auth-scheme
          required: false
          schema:
            default: partner-api-token
            enum:
              - api-token
              - api
              - api-oauth-token
              - federated-token
              - partner-api-token
              - partner-api
              - partner-api-oauth-token
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Partnerportal_UpdatePartnerPortalCompanyInfoWSRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Partnerportal_UpdatePartnerPortalCompanyInfoWSResponse"
          description: OK
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "429":
          $ref: "#/components/responses/TooManyRequests"
        "500":
          $ref: "#/components/responses/InternalServerError"
        "503":
          $ref: "#/components/responses/ServiceUnavailable"
      security:
        - ApiKeyAuth: []
        - oauth2:
            - write
      summary: Update partner portal company info
      tags:
        - Partner Portal Webservice
components:
  schemas:
    Partnerportal_UpdatePartnerPortalCompanyInfoWSRequest:
      description: "Request object for updating the company profile of the authenticated partner organization. Only the updatable fields appear here: there is deliberately no email and no organization field, because both are resolved from the authenticated principal, and accepting either from the body would let a caller write another partner's Account. Every field is optional, and a null value, a blank string or an empty list all leave the current value alone. Nothing can be cleared through this endpoint."
      properties:
        accessControl:
          description: Access control platforms the organization works with, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here.
          items:
            description: Access control platforms the organization works with, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here.
            nullable: true
            type: string
          nullable: true
          type: array
        alarmMonitoringApproved:
          description: Whether the partner organization is approved for alarm monitoring
          nullable: true
          type: boolean
        billingCity:
          description: Billing city of the partner organization. Null or blank leaves the current value alone.
          nullable: true
          type: string
        billingCountryCode:
          description: Billing country as an ISO code (for example US). Only the ISO code is accepted, not the display name. Null or blank leaves the current value alone.
          nullable: true
          type: string
        billingPostalCode:
          description: Billing postal code of the partner organization. Null or blank leaves the current value alone.
          nullable: true
          type: string
        billingStateCode:
          description: Billing state as an ISO code (for example CA). Only the ISO code is accepted, not the display name, and it must be valid for the billing country. Null or blank leaves the current value alone.
          nullable: true
          type: string
        billingStreet:
          description: Billing street of the partner organization. Null or blank leaves the current value alone.
          nullable: true
          type: string
        competitorsResellerOffers:
          description: Competitor offerings the organization also resells, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here.
          items:
            description: Competitor offerings the organization also resells, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here.
            nullable: true
            type: string
          nullable: true
          type: array
        confirmedAccessControlQualifications:
          description: Whether the partner organization has confirmed its access control qualifications
          nullable: true
          type: boolean
        offeredServices:
          description: Services the organization offers, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here.
          items:
            description: Services the organization offers, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here.
            nullable: true
            type: string
          nullable: true
          type: array
        partnerType:
          description: Partner types of the organization, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here. The Managed Service Provider (MSP) value is set by Rhombus, and a list containing it is rejected.
          items:
            description: Partner types of the organization, as Salesforce multi-select picklist values. Null or an empty list leaves the current values alone; they cannot be cleared here. The Managed Service Provider (MSP) value is set by Rhombus, and a list containing it is rejected.
            nullable: true
            type: string
          nullable: true
          type: array
        phone:
          description: Primary phone number of the partner organization. Null or blank leaves the current value alone; it cannot be cleared here.
          nullable: true
          type: string
        servicesGeographicCoverage:
          description: Geographic coverage of the services the partner organization offers. Null or blank leaves the current value alone.
          nullable: true
          type: string
        website:
          description: Website of the partner organization. Null or blank leaves the current value alone.
          nullable: true
          type: string
      type: object
    Partnerportal_UpdatePartnerPortalCompanyInfoWSResponse:
      description: Response object for updating the company profile of the authenticated partner organization. Carries success or failure only; re-read getCompanyInfo for the saved values.
      properties:
        error:
          nullable: true
          type: boolean
        errorCode:
          description: Stable, machine-readable code for the failure (one of the ApiErrorCode catalog) when error is true. Branch on this, not on errorMsg.
          nullable: true
          type: string
        errorMsg:
          nullable: true
          type: string
        warningMsg:
          nullable: true
          type: string
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: Your Rhombus API key. Must be accompanied by the `x-auth-scheme` header set to `api-token` (or `partner-api-token` for partner endpoints).
      in: header
      name: x-auth-apikey
      type: apiKey
    oauth2:
      description: 'OAuth 2.0 authorization code flow with PKCE (`S256`). Send the access token as `Authorization: Bearer <token>`. Each operation lists the scopes it requires; a token without them is refused 403 with `WWW-Authenticate: Bearer error="insufficient_scope"`.'
      flows:
        authorizationCode:
          authorizationUrl: https://console.rhombus.com/oauth/authorize
          refreshUrl: https://auth-web.rhombussystems.com/oauth/token
          scopes:
            physical: Unlock doors and elevators, lockdown, alarms, speakers and robots
            read: View cameras, footage and settings
            write: Change settings and data
          tokenUrl: https://auth-web.rhombussystems.com/oauth/token
      type: oauth2
````
