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

# Create partner deal registration

> Register a new deal for the authenticated partner organization. The submitting partner and all attribution are derived server-side from the authenticated session.

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

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 registering a new deal on behalf of the authenticated partner organization.

- `additionalInformation` (string | null): Additional information about the deal
- `city` (string | null): City of the end customer
- `comfortableWithRhombusEUDemo` (string | null): Whether the end customer is comfortable with a Rhombus end user demo
- `company` (string | null, required): Name of the end customer company
- `countryCode` (string | null): ISO country code of the end customer
- `dealRegProductInterest` (array<string | null> | null): Rhombus products the end customer is interested in
- `email` (string | null, required): Email address of the end customer contact. This is the end customer's email, not the submitting partner's email.
- `estimatedNumberOfCameras` (number | null): Estimated number of cameras for the deal
- `firstName` (string | null): First name of the end customer contact
- `governmentOwnedOrOperatedAccount` (string | null): Whether the end customer account is government owned or operated
- `governmentType` (string | null): Type of government entity, for public sector deals
- `hubspotNoOfEmployees` (string | null): Number of employees at the end customer company
- `industry` (string | null): Industry of the end customer
- `lastName` (string | null, required): Last name of the end customer contact
- `otherDidntAgreeToEndUserDemo` (string | null): Reason the end customer did not agree to an end user demo
- `partOfRFP` (boolean | null): Whether this deal is part of an RFP
- `phone` (string | null): Phone number of the end customer contact
- `population` (string | null): Population served by the end customer, for public sector deals
- `postalCode` (string | null): Postal code of the end customer
- `stateCode` (string | null): ISO state or province code of the end customer
- `street` (string | null): Street address of the end customer
- `studentCount` (string | null): Number of students at the end customer, for education deals
- `timeframe` (string | null): Expected purchasing timeframe for the deal
- `title` (string | null): Job title of the end customer contact
- `website` (string | null): Website of the end customer company

## 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)
- `salesforceLeadId` (string | null): Identifier of the Salesforce lead created for the registered deal
- `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/createPartnerDealRegistration:
    post:
      description: Register a new deal for the authenticated partner organization. The submitting partner and all attribution are derived server-side from the authenticated session.
      operationId: createPartnerDealRegistration
      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_CreatePartnerDealRegistrationWSRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Partnerportal_CreatePartnerDealRegistrationWSResponse"
          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: Create partner deal registration
      tags:
        - Partner Portal Webservice
components:
  schemas:
    Partnerportal_CreatePartnerDealRegistrationWSRequest:
      description: Request object for registering a new deal on behalf of the authenticated partner organization.
      properties:
        additionalInformation:
          description: Additional information about the deal
          nullable: true
          type: string
        city:
          description: City of the end customer
          nullable: true
          type: string
        comfortableWithRhombusEUDemo:
          description: Whether the end customer is comfortable with a Rhombus end user demo
          nullable: true
          type: string
        company:
          description: Name of the end customer company
          nullable: true
          type: string
        countryCode:
          description: ISO country code of the end customer
          example: US
          nullable: true
          type: string
        dealRegProductInterest:
          description: Rhombus products the end customer is interested in
          items:
            description: Rhombus products the end customer is interested in
            nullable: true
            type: string
          nullable: true
          type: array
        email:
          description: Email address of the end customer contact. This is the end customer's email, not the submitting partner's email.
          nullable: true
          type: string
        estimatedNumberOfCameras:
          description: Estimated number of cameras for the deal
          nullable: true
          type: number
        firstName:
          description: First name of the end customer contact
          nullable: true
          type: string
        governmentOwnedOrOperatedAccount:
          description: Whether the end customer account is government owned or operated
          nullable: true
          type: string
        governmentType:
          description: Type of government entity, for public sector deals
          nullable: true
          type: string
        hubspotNoOfEmployees:
          description: Number of employees at the end customer company
          nullable: true
          type: string
        industry:
          description: Industry of the end customer
          nullable: true
          type: string
        lastName:
          description: Last name of the end customer contact
          nullable: true
          type: string
        otherDidntAgreeToEndUserDemo:
          description: Reason the end customer did not agree to an end user demo
          nullable: true
          type: string
        partOfRFP:
          description: Whether this deal is part of an RFP
          nullable: true
          type: boolean
        phone:
          description: Phone number of the end customer contact
          nullable: true
          type: string
        population:
          description: Population served by the end customer, for public sector deals
          nullable: true
          type: string
        postalCode:
          description: Postal code of the end customer
          nullable: true
          type: string
        stateCode:
          description: ISO state or province code of the end customer
          example: CA
          nullable: true
          type: string
        street:
          description: Street address of the end customer
          nullable: true
          type: string
        studentCount:
          description: Number of students at the end customer, for education deals
          nullable: true
          type: string
        timeframe:
          description: Expected purchasing timeframe for the deal
          nullable: true
          type: string
        title:
          description: Job title of the end customer contact
          nullable: true
          type: string
        website:
          description: Website of the end customer company
          nullable: true
          type: string
      required:
        - company
        - email
        - lastName
      type: object
    Partnerportal_CreatePartnerDealRegistrationWSResponse:
      description: Response object containing the result of registering a new deal.
      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
        salesforceLeadId:
          description: Identifier of the Salesforce lead created for the registered deal
          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
````
