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

# Change or end registered agent service

> > **⚠️ Early access** — This endpoint is in preview and may change in backwards-incompatible ways before it is marked stable. Avoid depending on it in production, and [reach out](mailto:support@getpalm.com) before building on it.

Updates the registered agent on a business. Both actions are discriminated by `status`:

- `change_requested` — change the RA of record. Supply `registered_agent` to switch to your own / a different RA, or omit it to switch to Palm-provided service. The RA moves to `pending`; on completion `registered_agent.activated` (into Palm) or `registered_agent.changed` (away) fires. Any state-side filing this requires happens internally. The business must have a `formation_jurisdiction`. Returns 409 if a registered agent operation is already in flight (`pending` or `termination_requested`).
- `termination_requested` — ask Palm to stop serving as RA. Sets status to `termination_requested`; Palm remains RA on file and keeps forwarding mail until the work completes, when `registered_agent.terminated` fires. Returns 409 if the service is not currently `active`.

In test mode both actions complete immediately: termination fires `registered_agent.termination_requested` and `registered_agent.terminated` and returns the terminal snapshot (`status: terminated`).



## OpenAPI

````yaml /api-reference/v1/openapi.json patch /v1/business/{business_id}/registered-agent
openapi: 3.0.0
info:
  title: Palm Partner API
  description: >-
    The Palm API is identity verification and compliance infrastructure for US
    businesses: onboard businesses, verify businesses and people (KYB/KYC)
    against authoritative sources, monitor them for changes in real time, and
    act on their behalf through filings, formation, and registered agent
    services.
  version: '1.0'
  contact:
    name: Palm Support
    url: https://getpalm.com
    email: support@getpalm.com
  termsOfService: https://getpalm.com/terms
  license:
    name: Proprietary
    url: https://getpalm.com/license
servers:
  - url: https://api.getpalm.com
    description: Production
security: []
tags:
  - name: Registry
    description: Search business registries
  - name: Verification
    description: Identity and business verification
  - name: Monitor
    description: Continuous monitoring of businesses
  - name: Business
    description: Business entity management
  - name: User
    description: User identity management
paths:
  /v1/business/{business_id}/registered-agent:
    patch:
      tags:
        - Registered Agent
      summary: Change or end registered agent service
      description: >-
        > **⚠️ Early access** — This endpoint is in preview and may change in
        backwards-incompatible ways before it is marked stable. Avoid depending
        on it in production, and [reach out](mailto:support@getpalm.com) before
        building on it.


        Updates the registered agent on a business. Both actions are
        discriminated by `status`:


        - `change_requested` — change the RA of record. Supply
        `registered_agent` to switch to your own / a different RA, or omit it to
        switch to Palm-provided service. The RA moves to `pending`; on
        completion `registered_agent.activated` (into Palm) or
        `registered_agent.changed` (away) fires. Any state-side filing this
        requires happens internally. The business must have a
        `formation_jurisdiction`. Returns 409 if a registered agent operation is
        already in flight (`pending` or `termination_requested`).

        - `termination_requested` — ask Palm to stop serving as RA. Sets status
        to `termination_requested`; Palm remains RA on file and keeps forwarding
        mail until the work completes, when `registered_agent.terminated` fires.
        Returns 409 if the service is not currently `active`.


        In test mode both actions complete immediately: termination fires
        `registered_agent.termination_requested` and
        `registered_agent.terminated` and returns the terminal snapshot
        (`status: terminated`).
      operationId: updateRegisteredAgent
      parameters:
        - name: business_id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisteredAgentUpdateRequest'
      responses:
        '200':
          description: Registered agent update accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisteredAgent'
        '400':
          description: Missing formation_jurisdiction or invalid request data
        '404':
          description: Business not found in this organization
        '409':
          description: >-
            Requested change while a registered agent operation is already in
            flight, or termination requested while registered_agent_status is
            not active
        '503':
          description: Registered agent request could not be queued; retry
      security:
        - ApiKey: []
components:
  schemas:
    RegisteredAgentUpdateRequest:
      type: object
      properties:
        status:
          type: string
          description: Which update to perform. Discriminates the rest of the body.
          enum:
            - change_requested
            - termination_requested
          example: change_requested
        registered_agent:
          description: >-
            New registered agent (when `status=change_requested`). Supply agent
            details to change to your own / a different RA; omit to switch to
            Palm-provided service.
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/FormationRegisteredAgent'
        reason:
          type: string
          description: >-
            Why Palm RA service is being terminated (required when
            `status=termination_requested`).
          enum:
            - switching_providers
            - business_dissolved
            - business_offboarding
            - other
          example: switching_providers
        reason_detail:
          type: string
          description: >-
            Optional free-text context. Required by convention when `reason` is
            `other`.
          nullable: true
          maxLength: 500
          example: Moving RA service in-house effective end of quarter.
        metadata:
          type: object
          description: Optional metadata, round-tripped on the resulting work item.
          example:
            case_id: case_abc123
      required:
        - status
    RegisteredAgent:
      type: object
      properties:
        object:
          type: string
          description: Object type identifier, always "registered_agent"
          enum:
            - registered_agent
          example: registered_agent
        business_id:
          type: string
          description: Business this RA-service state belongs to
          format: uuid
          example: 987e6543-e21a-45b6-c789-012345678901
        provider:
          type: string
          description: >-
            Who provides RA service. `palm` when Palm provides service,
            `external` when the partner uses a different RA, `null` when no RA
            is tracked.
          enum:
            - palm
            - external
          nullable: true
          example: palm
        status:
          type: string
          description: >-
            Lifecycle status of Palm-provided RA service. `null` when the
            partner uses an external RA or has never used Palm RA.
          enum:
            - pending
            - active
            - termination_requested
            - terminated
            - failed
          nullable: true
          example: active
        jurisdiction:
          type: string
          description: Jurisdiction (state) the RA service is for
          nullable: true
          example: CA
        started_at:
          type: string
          description: ISO 8601 timestamp when the current service window started
          format: date-time
          nullable: true
          example: '2026-05-29T10:30:00Z'
        ended_at:
          type: string
          description: >-
            ISO 8601 timestamp when the most recent service window ended (null
            while active)
          format: date-time
          nullable: true
          example: null
        rejection_reason:
          type: string
          description: >-
            Reason the most recent termination request was rejected by ops.
            Present only on the `registered_agent.termination_failed` webhook
            payload — null on every other event and on reads of the resource.
            After a rejection the business is back in `active` and the partner
            can re-submit a new termination request.
          nullable: true
          example: >-
            State refused resignation form: GA requires a successor RA
            designation
        name:
          type: string
          description: >-
            Name of the registered agent of record for the business in this
            jurisdiction. Populated when Palm provides RA service; `null` when
            not yet known or the partner uses an external RA.
          nullable: true
          example: Acme Registered Agent Services, Inc.
        address:
          description: >-
            Mailing address of the registered agent of record. Populated when
            Palm provides RA service; `null` when not yet known or the partner
            uses an external RA.
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/Address'
      required:
        - object
        - business_id
        - provider
        - status
        - jurisdiction
        - started_at
        - ended_at
    FormationRegisteredAgent:
      type: object
      properties:
        type:
          type: string
          description: Whether the registered agent is a person or an organization
          enum:
            - person
            - organization
          example: person
        name:
          description: Registered agent name
          allOf:
            - $ref: '#/components/schemas/PartyName'
        address:
          description: Registered office address (must be in the formation jurisdiction)
          allOf:
            - $ref: '#/components/schemas/FormationAddress'
        mailing_address:
          description: Mailing address if different from the registered office
          allOf:
            - $ref: '#/components/schemas/FormationAddress'
        email:
          type: string
          description: Registered agent email. Required by some jurisdictions.
          example: agent@example.com
        phone:
          type: string
          description: Registered agent phone
          example: 919-555-1234
      required:
        - type
        - name
        - address
    Address:
      type: object
      properties:
        street_line_1:
          type: string
          example: One Coca-Cola Plaza NW
          description: Street address line 1
        street_line_2:
          type: string
          example: Suite 200
          description: Street address line 2 (apt, suite, etc.)
        city:
          type: string
          example: Atlanta
          description: City
        region:
          type: string
          example: GA
          description: State or region code
        postal_code:
          type: string
          example: '30313'
          description: Postal/ZIP code
        country:
          type: string
          example: US
          description: Country code
      required:
        - country
    PartyName:
      type: object
      properties:
        type:
          type: string
          description: Whether the party is a person or an entity
          enum:
            - person
            - entity
          example: person
        first:
          type: string
          description: First name. Required when type is "person".
          example: Jane
        last:
          type: string
          description: Last name. Required when type is "person".
          example: Doe
        middle:
          type: string
          description: Middle name or initial
          example: A.
        suffix:
          type: string
          description: Suffix (e.g., Jr., Sr., III)
          example: Jr.
        entity_name:
          type: string
          description: Legal name of the entity. Required when type is "entity".
          example: Acme Holdings LLC
      required:
        - type
    FormationAddress:
      type: object
      properties:
        street_line_1:
          type: string
          example: 123 Main St
          description: Street address line 1
        street_line_2:
          type: string
          description: Apt, suite, unit, etc.
          example: Suite 200
        city:
          type: string
          description: City
          example: Raleigh
        region:
          type: string
          description: State or region code
          example: NC
        postal_code:
          type: string
          description: Postal/ZIP code
          example: '27601'
        county:
          type: string
          description: County name (required by some jurisdictions)
          example: Mecklenburg
        country:
          type: string
          description: ISO 3166-1 alpha-2 country code
          example: US
      required:
        - street_line_1
        - city
        - region
        - postal_code
        - country
  securitySchemes:
    ApiKey:
      scheme: bearer
      bearerFormat: opaque
      type: http
      description: 'Enter your API key in the format: sk_test_xxxxx or sk_live_xxxxx'

````