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

# Update Associated Person

> Partially update an associated person and recompute onboarding requirements

Partially updates an associated person and recomputes onboarding requirements. All fields are optional; omitted fields are left untouched. Contact/display corrections may apply immediately; identity, role, ownership, signatory, and address changes can require additional verification review and may reset the person's hosted verification.

<Warning>
  Updates are rejected with `422` once the account's `kyc_status` is terminal (`approved` or `rejected`).
</Warning>

## Path Parameters

<ParamField path="customer_id" type="string" required>
  Id of the Platform customer.
</ParamField>

<ParamField path="account_id" type="string" required>
  Id of the parent account.
</ParamField>

<ParamField path="ap_id" type="string" required>
  Id of the associated person.
</ParamField>

## Request Body

<ParamField body="role" type="enum">
  One of `ultimate_beneficial_owner`, `director`, `control_person`.
</ParamField>

<ParamField body="is_signer" type="boolean">
  Whether this person is an authorized signer for the entity (eligible to sign agreements). Changing this field to `true` does not trigger additional email, phone, or OTP validation.
</ParamField>

<ParamField body="first_name" type="string">
  Given name. Max 100 characters.
</ParamField>

<ParamField body="middle_name" type="string">
  Middle name. Max 100 characters.
</ParamField>

<ParamField body="last_name" type="string">
  Family name. Max 100 characters.
</ParamField>

<ParamField body="email" type="email">
  Contact email address.
</ParamField>

<ParamField body="phone_number" type="string">
  Contact phone number.
</ParamField>

<ParamField body="date_of_birth" type="date">
  Date of birth, ISO 8601.
</ParamField>

<ParamField body="country_code" type="string">
  Country of residence, ISO 3166-1 alpha-2 (2 letters).
</ParamField>

<ParamField body="nationality" type="string">
  Nationality, ISO 3166-1 alpha-2 (2 letters).
</ParamField>

<ParamField body="ownership_percentage" type="decimal">
  Ownership stake with at most 5 digits and 2 decimal places. The API does not enforce a 0–100 range. This PATCH field is optional, including when changing `role`.
</ParamField>

<ParamField body="residential_address" type="Address">
  Residential address. Send its `country` as ISO 3166-1 alpha-2; the shared Address schema does not enforce its length.
</ParamField>

<ParamField body="identifying_information" type="array">
  Replacement identity-document metadata: a list of `{ type, number, issuing_country }` objects (same shape as in create). `type` is a free string with a 100-character maximum.
</ParamField>

## Response

Returns `200` with the updated associated-person object.

<RequestExample>
  ```json Request theme={null}
  {
    "email": "jane.roe@acme.example",
    "phone_number": "+6581234567",
    "ownership_percentage": "60.00",
    "residential_address": {
      "address_line": "8 New St",
      "city": "Berlin",
      "region": "BE",
      "postal_code": "10119",
      "country": "DE"
    }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "object": "associated_person",
    "id": "aap_8rty2c1x7k2m9p4q1w8e5r3t",
    "account_id": "acct_3mnq7c1e6a2b4f3c9b8d2e5a",
    "role": "ultimate_beneficial_owner",
    "is_signer": true,
    "first_name": "Jane",
    "middle_name": null,
    "last_name": "Roe",
    "email": "jane.roe@acme.example",
    "phone_number": "+6581234567",
    "date_of_birth": "1985-02-20",
    "country_code": "DE",
    "nationality": "DE",
    "ownership_percentage": "60.00",
    "residential_address": {
      "address_line": "8 New St",
      "city": "Berlin",
      "region": "BE",
      "postal_code": "10119",
      "country": "DE"
    },
    "verification_status": "under_review",
    "rejection_reasons": [],
    "created": "2026-05-30T12:00:00Z",
    "updated": "2026-06-03T09:30:00Z",
    "created_by": "ak_x7k2m9p4q1w8e5r3t6y0u2i4",
    "updated_by": "ak_x7k2m9p4q1w8e5r3t6y0u2i4"
  }
  ```
</ResponseExample>
