> ## 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 portal MDF request

> File a market development funds request for the authenticated partner organization. The request is attached to the organization's open allocation whose budget period covers today, and is rejected when no such allocation exists. The submitting partner is derived server-side from the authenticated session. Not idempotent: retrying creates another request.

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

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 filing a market development funds request on behalf of the authenticated partner organization.

- `activityCost` (number | null): Total cost of the marketing activity; must be greater than zero when present
- `activityDescription` (string | null): Description of the marketing activity the funds are requested for
- `activityEndDate` (string | null, required): Last day of the marketing activity, in yyyy-MM-dd format; not before activityStartDate
- `activityStartDate` (string | null, required): First day of the marketing activity, in yyyy-MM-dd format
- `activityType` (string | null, required): Type of the marketing activity
- `amountRequested` (number | null, required): Amount of funding requested; must be greater than zero
- `city` (string | null): City where the marketing activity takes place
- `countryCode` (string | null): ISO 3166-1 alpha-2 code of the country where the marketing activity takes place (for example US)
- `postalCode` (string | null): Postal code where the marketing activity takes place
- `requestTitle` (string | null, required): Title of the request
- `stateCode` (string | null): ISO code of the state or province where the marketing activity takes place (for example CA); requires countryCode, since Salesforce rejects a state without a country
- `street` (string | null): Street address where the marketing activity takes place

## 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)
- `mdfRequestId` (string | null): Identifier of the Salesforce MDF request that was created
- `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/createMdfRequest:
    post:
      description: "File a market development funds request for the authenticated partner organization. The request is attached to the organization's open allocation whose budget period covers today, and is rejected when no such allocation exists. The submitting partner is derived server-side from the authenticated session. Not idempotent: retrying creates another request."
      operationId: createMdfRequest
      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_CreatePartnerPortalMdfRequestWSRequest"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Partnerportal_CreatePartnerPortalMdfRequestWSResponse"
          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 portal MDF request
      tags:
        - Partner Portal Webservice
components:
  schemas:
    Partnerportal_CreatePartnerPortalMdfRequestWSRequest:
      description: Request object for filing a market development funds request on behalf of the authenticated partner organization.
      properties:
        activityCost:
          description: Total cost of the marketing activity; must be greater than zero when present
          nullable: true
          type: number
        activityDescription:
          description: Description of the marketing activity the funds are requested for
          nullable: true
          type: string
        activityEndDate:
          description: Last day of the marketing activity, in yyyy-MM-dd format; not before activityStartDate
          nullable: true
          type: string
        activityStartDate:
          description: First day of the marketing activity, in yyyy-MM-dd format
          nullable: true
          type: string
        activityType:
          description: Type of the marketing activity
          nullable: true
          type: string
        amountRequested:
          description: Amount of funding requested; must be greater than zero
          nullable: true
          type: number
        city:
          description: City where the marketing activity takes place
          nullable: true
          type: string
        countryCode:
          description: ISO 3166-1 alpha-2 code of the country where the marketing activity takes place (for example US)
          nullable: true
          type: string
        postalCode:
          description: Postal code where the marketing activity takes place
          nullable: true
          type: string
        requestTitle:
          description: Title of the request
          nullable: true
          type: string
        stateCode:
          description: ISO code of the state or province where the marketing activity takes place (for example CA); requires countryCode, since Salesforce rejects a state without a country
          nullable: true
          type: string
        street:
          description: Street address where the marketing activity takes place
          nullable: true
          type: string
      required:
        - activityEndDate
        - activityStartDate
        - activityType
        - amountRequested
        - requestTitle
      type: object
    Partnerportal_CreatePartnerPortalMdfRequestWSResponse:
      description: Response object containing the result of filing a market development funds request.
      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
        mdfRequestId:
          description: Identifier of the Salesforce MDF request that was created
          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
````
