Learn how and when to update certain information in Moov accounts.

You can update a newly created account during certain verification and capability status windows. Profile and underwriting data must also be submitted for the account before you have the ability to edit it.

Certain fields like `accountType`, can't be updated once an account has been created.

## Update windows

Moov uses the capability status to determine when profile and onboarding information can be edited.

- `pending` status: Update or provide missing required information, or data that triggers a verification error
- `in-review` & `enabled`: Update or provide missing required information

When an account is `in-review` or `pending`, most submitted underwriting data is locked, and cannot be edited or removed. If you need to change locked data for a capability that is already in use, [contact support](https://support.moov.io/).

Fields like `metadata`, `foreignID`, and `settings` can always be updated, regardless of capability status.

## Capability status & editable fields

Existing data refers to fields that have already been provided and accepted. These fields are locked once the capability moves to `in-review` or `enabled`.

| **Status** | **Edit existing data** | **Edit incomplete data** | **Provide missing data** |
| --- | --- | --- | --- |
| `disabled` | **✓** | **✓** | **✓** |
| `pending` |  | **✓** | **✓** |
| `in-review` |  |  | **✓** |
| `enabled` |  |  | **✓** |

## Update accounts via API

To update an account via the Moov API, use the accounts `PATCH` [endpoint](https://docs.moov.io/api/moov-accounts/accounts/patch/). You can also update an account with [Moov.js](https://docs.moov.io/moovjs/).

Some business accounts require the [additional step](https://docs.moov.io/guides/accounts/account-types/#api) of setting `ownersProvided` to **true** before Moov can verify an account. The examples below update a business account with this information.

Ask

```zsh
curl -X PATCH "https://api.moov.io/accounts/{accountID}" \
  -H "Authorization: Bearer {token}" \
  -H "x-moov-version: v2024.01.00" \
  --data-raw '{
    "profile": {
      "business": {
        "ownersProvided": true
      }
    },
    "foreignId": "unique-correlation-id"
  }'
```

Ask

```go
mc, _ := moov.NewClient()

account := moov.Account{
  AccountID:   "accountID",
  AccountType: moov.AccountType_Business,
  Profile: moov.Profile{
    Business: &moov.Business{
      OwnersProvided: true,
    },
  },
}

mc.UpdateAccount(ctx, account)
```

Ask

```javascript
const moov = Moov(token);

const accountID = "accountID"
const updatedAccount = {
  profile: {
    business: {
      ownersProvided: true,
    }
  }
};

moov.accounts.update(accountID, updatedAccount);
```

## Update accounts via Dashboard

See the [Dashboard](https://docs.moov.io/guides/dashboard/accounts/#edit-account-information) docs for information and instructions.

If a certain field is locked and you can't update it, this is due to the verification or underwriting status of the account.

## Disconnect accounts

Once you disconnect an account, the action cannot be undone.

Disconnecting an account removes the ability to interact with it. You'll continue to have read-only access to the account for reporting purposes. The following actions will no longer be available:

- Edit profile
- Edit past transfers
- Upload documents
- Create new transfer
- Create new payment method

Disconnecting an account **does not** delete the account, its Moov wallet, or account history.

You can disconnect an account through the [Dashboard](https://docs.moov.io/guides/dashboard/accounts/#disconnect-accounts) or by providing the `accountID` in the path when making a request to the accounts `DEL` [endpoint](https://docs.moov.io/api/moov-accounts/accounts/delete/).

If you want to include disconnected accounts when using the list accounts `GET` [endpoint](https://docs.moov.io/api/moov-accounts/accounts/list/), make sure you set `includeDisconnected` to **true**.
