---
title: "ProducerDetailV2"
url: "https://developer.agentsync.io/apis/contracting-hierarchies-api/versions/40f58935-396e-4da4-8f47-1587041e1b16/schemas/ProducerDetailV2"
---

> Full API specification: https://developer.agentsync.io/apis/contracting-hierarchies-api/versions/40f58935-396e-4da4-8f47-1587041e1b16.md

# ProducerDetailV2

A single producer in the calling customer's organization. Carries the same fields as the list item plus `phones`, `federatedUsername`, and `bankAccounts`, and serves a live `middleName`. Personal and demographic details such as date of birth, SSN, and addresses are not part of a contracting record and are retrieved from the Identity API.

## OpenAPI definition

```yaml
openapi: 3.1.0
info:
  title: AgentSync Contracting & Hierarchies API
  version: v1.7.6
servers:
  - url: https://api.sandbox.agentsync.io/contracting
    description: Sandbox
  - url: https://api.agentsync.io/contracting
    description: Production
components:
  schemas:
    ProducerV2:
      type: object
      description: >
        A producer in the calling customer's organization. A producer is either
        an individual

        (`type` = `AGENT`, identified by `personId`) or a firm (`type` = `FIRM`,
        identified by

        `firmId`); fields that do not apply to the other kind are null.
      properties:
        type:
          type: string
          description: The producer kind.
          enum:
            - AGENT
            - FIRM
        personId:
          type: string
          format: uuid
          description: The individual's id (null for firms).
        firmId:
          type: string
          format: uuid
          description: The firm's id (null for individuals).
        firstName:
          type: string
          description: The individual's first name (null for firms).
        middleName:
          type: string
          description: >
            The individual's middle name (null for firms). On this list item it
            comes from the

            contracting record's own copy, which can lag the Identity API; the
            by-id endpoint reads

            it live.
        lastName:
          type: string
          description: The individual's last name (null for firms).
        suffix:
          type: string
        firmName:
          type: string
          description: The firm's name (null for individuals).
        npn:
          type: string
          description: National Producer Number.
        email:
          type: string
          description: The individual's email (null for firms).
        organizationId:
          type: string
          format: uuid
        organizationName:
          type: string
        roleName:
          type: string
        statusId:
          type: string
          format: uuid
        statusName:
          type: string
          description: The human-readable producer status (inlined). Null for firms, which
            carry no status.
        active:
          type: boolean
          description: Whether the producer is active. Always true for firms.
        divisions:
          type: array
          items:
            type: string
        userDefined1:
          type: string
        userDefined2:
          type: string
        userDefined3:
          type: string
        userDefined4:
          type: string
        userDefined5:
          type: string
        userDefined6:
          type: string
        userDefined7:
          type: string
        userDefined8:
          type: string
        userDefined9:
          type: string
        userDefined10:
          type: string
        createdAt:
          type: string
          format: date-time
          description: RFC3339 UTC creation timestamp.
        updatedAt:
          type: string
          format: date-time
          description: RFC3339 UTC last-modified timestamp.
      required:
        - type
    ProducerBankAccountV2:
      type: object
      description: A producer's bank account. The account and routing numbers are
        masked to `****<last4>`.
      properties:
        id:
          type: string
          format: uuid
        type:
          type: string
          description: The account type.
          enum:
            - CHECKING
            - SAVINGS
            - CREDIT_UNION
        bankName:
          type: string
        nickname:
          type: string
        holderName:
          type: string
        number:
          type: string
          description: Account number masked to `****<last4>`.
          example: "****7890"
        routingNumber:
          type: string
          description: Routing number masked to `****<last4>`.
          example: "****0021"
    ProducerPhoneV2:
      type: object
      description: A producer's phone number.
      properties:
        id:
          type: string
          format: uuid
        number:
          type: string
          example: "5551234567"
        extension:
          type: string
        type:
          type: string
          description: The phone kind.
          enum:
            - CELL
            - BUSINESS
            - RESIDENT
            - FAX
        preferred:
          type: boolean
          description: Whether this is the producer's preferred number.
    ProducerDetailV2:
      description: >
        A single producer in the calling customer's organization. Carries the
        same fields as the list

        item plus `phones`, `federatedUsername`, and `bankAccounts`, and serves
        a live `middleName`.

        Personal and demographic details such as date of birth, SSN, and
        addresses are not part of a

        contracting record and are retrieved from the Identity API.
      allOf:
        - $ref: "#/components/schemas/ProducerV2"
        - type: object
          properties:
            middleName:
              type: string
              description: >
                The individual's middle name (null for firms), read live from
                the Identity API so it

                is current even when the contracting record's own copy has not
                caught up.
            bankAccounts:
              type: array
              description: The producer's bank accounts. Account and routing numbers are
                masked.
              items:
                $ref: "#/components/schemas/ProducerBankAccountV2"
            phones:
              type: array
              description: The producer's phone numbers.
              items:
                $ref: "#/components/schemas/ProducerPhoneV2"
            federatedUsername:
              type: string
              description: >
                The producer's federated login username for the calling
                customer. Null when the

                producer has no federated login, and always null for firms.
```
