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

# Make a representative primary

> Make an existing representative the primary representative (signer). Any current primary is demoted, so exactly one remains. Allowed only before the application is submitted for review. Returns the updated onboarding status.



## OpenAPI

````yaml POST /entities/{entity_id}/representatives/{representative_id}/make-primary
openapi: 3.1.0
info:
  title: Meow API
  description: >
    ## Overview


    The Meow API provides financial services and billing capabilities for your
    business.


    ### Core Features


    - **Financial data access**: access account information, transactions,
    balances, and payment networks.

    - **Crypto operations**: create and manage crypto contacts, and initiate
    USDC transfers across blockchain networks.


    ### Billing API


    The Billing API lets you create and manage invoices and collect payments:


    - **Product management**: create and manage products with custom pricing.

    - **Customer management**: maintain invoicing customers with their
    addresses.

    - **Invoice creation**: generate invoices with line items, discounts, and
    custom notes.

    - **Payment options**: accept payments via ACH, wire, international wire,
    card, and USDC.

    - **Collection accounts**: configure accounts for payment collection.


    ### Getting Started


    Authenticate by sending your API key in the `x-api-key` request header.


    To scope requests to a specific entity, include the `x-entity-id` header.
    Use the `/api-keys/accessible-entities` endpoint to list all entities
    accessible by your API key.


    ### Error Responses


    Errors return JSON with `code`, `message`, and `debug_message`. The `code`
    aligns with FDX where possible; use `debug_message` for troubleshooting
    only.


    Common error codes:


    - `500`: Internal server error

    - `501`: Subsystem unavailable

    - `503`: Scheduled maintenance

    - `601`: Data not found

    - `602`: Customer not authorized

    - `701`: Account not found

    - `703`: Invalid input (including invalid date ranges)

    - `704`: Account type not supported

    - `705`: Account is closed

    - `801`: Transaction not found
  contact:
    name: Meow
    url: https://meow.com/
    email: support@meow.com
  version: 1.0.0
  license:
    name: Proprietary
    url: https://www.meow.com/terms-of-service
servers:
  - url: https://api.meow.com/v1
    description: Meow API Production
  - url: https://api.sandbox.meow.com/v1
    description: Meow API Sandbox
security:
  - apiKeyAuth: []
tags:
  - name: API Keys
    description: Retrieve metadata about API keys and their accessible entities.
  - name: Accounts
    description: Access and manage accounts.
  - name: Approvals
  - name: Balances
    description: Retrieve account balances and available funds.
  - name: Bills
    description: View and manage bills for vendor payments.
  - name: Cards
    description: Manage virtual and physical cards, and view transactions and insights.
  - name: Collection Accounts
    description: Manage accounts for payment collection.
  - name: Contacts
    description: Manage contacts for crypto and USDC transfers.
  - name: Customers
    description: Manage invoicing customers and their details.
  - name: Entities
  - name: Invoices
    description: Create and manage invoices.
  - name: Limits
  - name: Line Items
    description: Manage invoice line items.
  - name: Partner Onboarding
    description: Onboard entities using your partner API key.
  - name: Partner Webhooks
  - name: Payment Methods
    description: View available payment method types.
  - name: Payment Networks
    description: Manage payment networks and routing information.
  - name: Products
    description: Manage products and pricing for invoicing.
  - name: Routing Numbers
    description: Validate routing numbers and retrieve bank information.
  - name: Security Policies
  - name: Simulations
    description: >-
      Trigger simulated events — inbound transfers, card authorizations,
      application approval — to test integrations end-to-end without real money
      movement. **Not available in production**: these endpoints exist only in
      sandbox and development environments and return `404 Not Found` in
      production.
  - name: Tax Forms
    description: Retrieve IRS tax forms (1099 family) issued for accounts.
  - name: Transactions
    description: Retrieve account transaction history and details.
  - name: Transfers
    description: >-
      Initiate ACH, wire, book, and crypto transfers, and retrieve transfer
      details.
  - name: Webhooks
    description: Manage webhook subscriptions and inspect delivery history.
paths:
  /entities/{entity_id}/representatives/{representative_id}/make-primary:
    post:
      tags:
        - Entities
      summary: Make Representative Primary
      description: >-
        Make an existing representative the primary representative (signer). Any
        current primary is demoted, so exactly one remains. Allowed only before
        the application is submitted for review. Returns the updated onboarding
        status.
      operationId: >-
        set_primary_representative_entities__entity_id__representatives__representative_id__make_primary_post
      parameters:
        - name: representative_id
          in: path
          required: true
          schema:
            type: string
            title: Representative Id
        - name: entity_id
          in: path
          required: true
          schema:
            type: string
            title: Entity Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOnboardingStatusResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - entity:create
components:
  schemas:
    EntityOnboardingStatusResponse:
      properties:
        entity_id:
          type: string
          format: uuid
          title: Entity Id
          description: >-
            Public ID of the onboarded business entity, stable across the
            onboarding lifecycle and matching the `entity_id` used in the
            Customer API, MCP, and webhook payloads.
        status:
          $ref: '#/components/schemas/OnboardingApplicationStatus'
          description: Current onboarding status.
        business_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Business Name
          description: Legal business name.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when the entity was created.
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when onboarding was last updated.
        documents:
          items:
            $ref: '#/components/schemas/OnboardingDocumentStatus'
          type: array
          title: Documents
          description: Documents uploaded during onboarding.
        kyc_status:
          $ref: '#/components/schemas/OnboardingKycStatus'
          description: >-
            Identity verification status of the primary representative. After
            you submit KYC data or they complete verification, this moves to
            `pending` and resolves on its own; poll it to track progress.
            `action_required` means their verification needs another step from
            them (for example, a document): create a link with `POST
            /entities/{entity_id}/representatives/{representative_id}/verification-link`
            and share it so they can finish. See `representatives` for every
            representative's status.
        onboarding_type:
          $ref: '#/components/schemas/PublicOnboardingType'
          description: How this entity was onboarded (e.g. `api`, `smb`, `partner`).
        next_step:
          $ref: '#/components/schemas/OnboardingNextStep'
          description: >-
            What you must do next: the current onboarding step, the items still
            missing for it, and whether the application is ready to be submitted
            for review.
        representatives:
          items:
            $ref: '#/components/schemas/OnboardingRepresentativeKyc'
          type: array
          title: Representatives
          description: >-
            Every representative on the application with their identity
            verification (KYC) status. The top-level `kyc_status` reflects the
            primary representative; the application can only be approved once
            every representative is approved.
        consent_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Consent Url
          description: >-
            Link where the primary representative reviews and accepts the
            required agreements and disclosures in their browser. Populated once
            the application has been submitted; share it with the primary
            representative. The link needs no login and anyone holding it can
            accept on the business's behalf, so treat it as a secret.
      type: object
      required:
        - entity_id
        - status
        - business_name
        - created_at
        - updated_at
        - documents
        - kyc_status
        - onboarding_type
        - next_step
        - representatives
        - consent_url
      title: EntityOnboardingStatusResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    OnboardingApplicationStatus:
      type: string
      enum:
        - pending_document_upload
        - pending_user_action
        - submitted
        - under_review
        - approved
        - rejected
      title: OnboardingApplicationStatus
    Timestamp:
      type: string
      format: date-time
      title: Timestamp
      description: >-
        ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]`
        (per [IETF RFC
        3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
    OnboardingDocumentStatus:
      properties:
        proof_type:
          $ref: '#/components/schemas/PublicKybProofType'
          description: Type of KYB document on file.
        file_name:
          anyOf:
            - type: string
            - type: 'null'
          title: File Name
          description: Uploaded file name, or null if not yet uploaded.
        representative_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Representative Id
          description: >-
            The representative this document belongs to, or null for
            business-level documents.
      type: object
      required:
        - proof_type
        - file_name
      title: OnboardingDocumentStatus
    OnboardingKycStatus:
      type: string
      enum:
        - not_started
        - pending
        - action_required
        - approved
        - rejected
      title: OnboardingKycStatus
      x-enum-varnames:
        - not_started
        - pending
        - action_required
        - approved
        - rejected
    PublicOnboardingType:
      type: string
      enum:
        - api
        - smb
        - mcp
        - partner
      title: PublicOnboardingType
      x-enum-varnames:
        - api
        - smb
        - mcp
        - partner
    OnboardingNextStep:
      properties:
        step:
          $ref: '#/components/schemas/OnboardingStep'
          description: The onboarding step the application is currently on.
        phase:
          $ref: '#/components/schemas/OnboardingPhase'
          description: >-
            Coarse onboarding phase (collecting info, ready to submit, or
            submitted).
        missing:
          items:
            type: string
          type: array
          title: Missing
          description: >-
            Items you still need to provide to advance past the current step.
            Empty once the step is satisfied.
        required_proof_types:
          items:
            $ref: '#/components/schemas/PublicKybProofType'
          type: array
          title: Required Proof Types
          description: >-
            KYB documents you still owe, as `proof_type` values to pass to the
            document upload endpoint. For a non-US business this usually
            includes `incorporation`, `shareholder_registry` (your shareholder
            registry or register of members), and `officer_registry` (your
            register of directors). Empty once every required document is on
            file.
        can_submit:
          type: boolean
          title: Can Submit
          description: >-
            Whether all requirements are met and the application is ready to be
            submitted for review.
      type: object
      required:
        - step
        - phase
        - missing
        - can_submit
      title: OnboardingNextStep
    OnboardingRepresentativeKyc:
      properties:
        representative_id:
          type: string
          format: uuid
          title: Representative Id
          description: ID of the representative.
        first_name:
          anyOf:
            - type: string
            - type: 'null'
          title: First Name
          description: Legal first name.
        last_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Name
          description: Legal last name.
        email:
          type: string
          title: Email
          description: Representative's email address.
        is_primary:
          type: boolean
          title: Is Primary
          description: Whether they are the primary representative (signer).
        is_beneficial_owner:
          type: boolean
          title: Is Beneficial Owner
          description: Whether they are a beneficial owner.
        percent_ownership:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Percent Ownership
          description: Ownership percentage, if any.
        kyc_status:
          $ref: '#/components/schemas/OnboardingKycStatus'
          description: >-
            This representative's identity verification status, kept consistent
            with the `identity_verification.*` webhook events. `action_required`
            means their verification needs another step from them (for example,
            a document or selfie): create a link with `POST
            /entities/{entity_id}/representatives/{representative_id}/verification-link`
            and share it so they can finish.
      type: object
      required:
        - representative_id
        - first_name
        - last_name
        - email
        - is_primary
        - is_beneficial_owner
        - percent_ownership
        - kyc_status
      title: OnboardingRepresentativeKyc
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    PublicKybProofType:
      type: string
      enum:
        - accredited
        - address
        - articles_of_organization
        - bank_statement
        - client_contract
        - client_invoice
        - beneficial_owner_address
        - beneficial_owner_id
        - beneficial_owner_id_back
        - beneficial_ownership_register
        - bylaws
        - certificate_of_good_standing
        - corporate_resolution
        - drivers_license
        - due_diligence
        - ein
        - final_edd_report
        - government_issued_business_license
        - hemp_cultivator_state_license
        - incorporation
        - industry_related_license
        - lease_agreement
        - llc_resolution
        - money_service_business_license
        - money_transmitter_registration
        - mortgage_statement
        - national_id
        - org_chart
        - partnership_agreement
        - partnership_agreement_due_diligence
        - partnership_resolution
        - personal_address
        - remote_employees_due_diligence
        - signed_ss4
        - tax_exemption_certificate
        - uk_officer_passport
        - officer_registry
        - uk_registry
        - shareholder_registry
        - uk_w8_en
        - utility_bill
        - us_based_office_proof_of_address_due_diligence
        - pitch_deck
        - active_business_registration
        - proof_of_ownership_or_banking_authorization
        - non_profit_bylaws
        - operating_agreement
        - flow_of_funds
        - aml_sanction
        - registration_or_license
        - sec_filing
        - legal_opinion
        - certificate_of_formation_master_llc
        - series_operating_agreement
        - share_subscription_agreement
        - fund_subscription_agreement
        - safe_agreement
        - convertible_note_agreement
        - loan_promissory_note
        - token_purchase_agreement
        - saft_agreement
        - deal_memo_hybrid_agreement
        - issuer_due_diligence_report
        - protocol_ecosystem_questionnaire
        - investment_company_due_diligence_form
        - us_based_operations_due_diligence_form
        - register_of_directors
        - articles_of_association
        - memorandum_of_association
        - non_profit_status
        - ofac_sanctions_screening_policy
        - aml_kyc_policy
        - w8_bene
        - corporate_structure_chart
        - sanctions_vendor_service_agreement
        - contractual_fund_flow_agreements
      title: PublicKybProofType
      x-enum-varnames:
        - accredited
        - address
        - articles_of_organization
        - bank_statement
        - client_contract
        - client_invoice
        - beneficial_owner_address
        - beneficial_owner_id
        - beneficial_owner_id_back
        - beneficial_ownership_register
        - bylaws
        - certificate_of_good_standing
        - corporate_resolution
        - drivers_license
        - due_diligence
        - ein
        - final_edd_report
        - government_issued_business_license
        - hemp_cultivator_state_license
        - incorporation
        - industry_related_license
        - lease_agreement
        - llc_resolution
        - money_service_business_license
        - money_transmitter_registration
        - mortgage_statement
        - national_id
        - org_chart
        - partnership_agreement
        - partnership_agreement_due_diligence
        - partnership_resolution
        - personal_address
        - remote_employees_due_diligence
        - signed_ss4
        - tax_exemption_certificate
        - uk_officer_passport
        - officer_registry
        - uk_registry
        - shareholder_registry
        - uk_w8_en
        - utility_bill
        - us_based_office_proof_of_address_due_diligence
        - pitch_deck
        - active_business_registration
        - proof_of_ownership_or_banking_authorization
        - non_profit_bylaws
        - operating_agreement
        - flow_of_funds
        - aml_sanction
        - registration_or_license
        - sec_filing
        - legal_opinion
        - certificate_of_formation_master_llc
        - series_operating_agreement
        - share_subscription_agreement
        - fund_subscription_agreement
        - safe_agreement
        - convertible_note_agreement
        - loan_promissory_note
        - token_purchase_agreement
        - saft_agreement
        - deal_memo_hybrid_agreement
        - issuer_due_diligence_report
        - protocol_ecosystem_questionnaire
        - investment_company_due_diligence_form
        - us_based_operations_due_diligence_form
        - register_of_directors
        - articles_of_association
        - memorandum_of_association
        - non_profit_status
        - ofac_sanctions_screening_policy
        - aml_kyc_policy
        - w8_bene
        - corporate_structure_chart
        - sanctions_vendor_service_agreement
        - contractual_fund_flow_agreements
    OnboardingStep:
      type: string
      enum:
        - gather_business_context
        - collect_user_info
        - collect_business_addresses
        - collect_business_details
        - collect_additional_details
        - complete_due_diligence
        - upload_documents
        - manage_representatives
        - complete_identity_verification
        - accept_terms
        - submit_application
        - monitor_review
        - resolve_info_requests
      title: OnboardingStep
    OnboardingPhase:
      type: string
      enum:
        - business_info
        - ready_to_submit
        - submitted
      title: OnboardingPhase
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Meow API key, sent in the `x-api-key` header for authentication.
      x-scopes:
        - accounts:read
        - accounts:write
        - accounts:payment-networks
        - accounts:transactions
        - accounts:balances
        - accounts:statements
        - accounts:tax-documents
        - entity:create
        - transfers:crypto:write
        - transfers:usdc:write
        - transfers:ach:write
        - transfers:wire:write
        - transfers:book:write
        - contacts:read
        - contacts:write
        - billing:products:read
        - billing:products:write
        - billing:customers:read
        - billing:customers:write
        - billing:invoices:read
        - billing:invoices:write
        - billing:accounts:read
        - billpay:read
        - billpay:write
        - onboarding:read
        - onboarding:write
        - cards:read
        - cards:write
        - webhooks:read
        - webhooks:write
        - partner:onboarding:read
        - partner:onboarding:write
        - partner:webhooks:read
        - partner:webhooks:write
        - simulations:write
        - banking:limits:read
        - banking:limits:write

````