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

# When Customer Data Can Be Updated

> Which customer fields and documents can be changed with PATCH and document uploads, based on the status of each verification profile and the profiles that already evaluated them.

Whether a field or document can be changed depends on two things: the **status** of each of the customer's verification profiles, and **which profiles already evaluated** that field. This page gives the rule, then applies it to individual customers.

## The rule

A field or document is **locked** when it is a `complete` criterion of a verification profile whose status is `pending` or `approved`. Everything else can be changed with `PATCH /v2/customer/{id}` or `POST /v2/document`.

| Profile status                      | Effect on the criteria it evaluated                                                             |
| ----------------------------------- | ----------------------------------------------------------------------------------------------- |
| `incomplete`                        | Nothing locked. Supply or correct any field or document.                                        |
| `pending`                           | All `complete` criteria locked while the review is in progress.                                 |
| `approved`                          | All `complete` criteria locked.                                                                 |
| `rejected`, `resubmission_required` | Nothing locked. Correct what `criteria.errors` lists and the profile is resubmitted on its own. |

Criteria shared by several profiles are locked if **any** of those profiles is `pending` or `approved`. Criteria evaluated by none of the customer's locking profiles stay editable, which is what lets you [add a profile to a pending or approved customer](/concepts/onboarding/verification-profiles/onboard-new-customer#add-a-profile-later). Documents you already uploaded for an earlier profile are re-checked for a newly added profile and appear in its `criteria.pending` until that check completes; data fields carry over as `complete` immediately.

A rejected `PATCH` returns 400 `customer/field-locked-by-verification-profile` and applies nothing. The body names each locked field and the profile locking it:

```json theme={"dark"}
{
  "status": 400,
  "code": "customer/field-locked-by-verification-profile",
  "detail": "One or more fields are locked by a verification profile that is pending or approved.",
  "errors": [
    {
      "detail": "personalInformation.actingAsIntermediary is locked by verification profile kyc_profile_a (pending).",
      "pointer": "/personalInformation/actingAsIntermediary"
    }
  ]
}
```

Document uploads return the same code; the error entry carries `parameter: "documentType"` and names the locking profile in `detail`. Removing a profile from `enabledVerificationProfiles` while it is `pending` or `approved` returns the same code with `pointer: "/enabledVerificationProfiles"`.

## Always immutable

`firstName`, `lastName`, `dateOfBirth`, `email` and `phone` cannot be changed after creation in any status. Create a new customer if these are wrong.

## Individual customers

Locks follow the customer's `kyc_profile_*` entries. The table shows which profiles evaluate each criterion; a criterion is locked while any ticked profile is `pending` or `approved`.

| Criterion                                                                   | Field or document                                                                | A              | C | D |
| --------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------- | - | - |
| `residential_address`                                                       | `address`                                                                        | ✓              | ✓ | ✓ |
| `tax_identification_number`                                                 | `personalInformation.taxIdentificationNumber*`                                   | ✓              | ✓ | ✓ |
| `identity_document`, `liveness_report_document`, `source_of_funds_document` | document uploads                                                                 | ✓              | ✓ | ✓ |
| `source_of_funds`, `occupation_soc_code`                                    | `personalInformation.sourceOfFunds`, `occupationSocCode`                         | ✓              | ✓ | ✓ |
| `account_purpose`, `employment_status`, `acting_as_intermediary`            | `personalInformation.accountPurpose`, `employmentStatus`, `actingAsIntermediary` | ✓              | — | — |
| `expected_monthly_payments`                                                 | `personalInformation.expectedMonthlyPayments`                                    | ✓              | — | ✓ |
| `country_of_birth`, `nationality`                                           | `personalInformation.countryOfBirth`, `nationality`                              | EEA+ residents | ✓ | ✓ |
| `sex`                                                                       | `personalInformation.gender`                                                     | —              | ✓ | ✓ |
| `proof_of_address_document`, `w8_ben_document`                              | document uploads                                                                 | —              | ✓ | ✓ |
| `state_of_birth`                                                            | `personalInformation.stateOfBirth`                                               | —              | — | ✓ |
| expected activity criteria                                                  | `personalExpectedActivity`                                                       | —              | — | ✓ |
| `ip_address`                                                                | `ipAddress`                                                                      | —              | — | ✓ |

**Example — profile A pending or approved, adding profile C.** Everything in column A is locked. `gender`, `countryOfBirth` and `nationality` (for a non-EEA+ customer), plus the proof of address and W-8BEN uploads, are open because only C evaluates them. Once they are in, `kyc_profile_c` goes `pending` and locks them too.

**Example — profile A rejected.** Nothing is locked. Fix the fields listed in `criteria.errors`, re-upload documents if asked, and the profile is resubmitted automatically.

## Business customers

`PATCH /v2/customer/{id}` is not yet available for business customers, including changes to `enabledVerificationProfiles`; it returns 400 `customer/operation-not-allowed`. Document uploads for the business and its representatives are unaffected. Contact [support@spherepay.co](mailto:support@spherepay.co) if an existing business needs a new profile.

***

## Related guides

<CardGroup cols={2}>
  <Card title="Verification profiles overview" icon="badge-check" href="/concepts/onboarding/verification-profile">
    Statuses, criteria and requirements per profile.
  </Card>

  <Card title="Onboard a customer with profiles" icon="user-plus" href="/concepts/onboarding/verification-profiles/onboard-new-customer">
    Choose profiles at creation and add one later.
  </Card>
</CardGroup>
