---
title: "Update an account"
method: POST
path: "/quickbooks-desktop/accounts/{id}"
---

# Update an account

`POST /quickbooks-desktop/accounts/{id}`

Updates an existing financial account. You can rename the account, adjust numbering, or change supported attributes, but QuickBooks won’t let you convert it to a non-posting type via the API.

## Path parameters

- `id` string, required — The QuickBooks-assigned unique identifier of the account to update.

## Headers

- `Conductor-End-User-Id` string, required — The ID of the End-User to receive this request.

## Request body

- object
  - `revisionNumber` string, required — The current QuickBooks-assigned revision number of the account object you are updating, which you can get by fetching the object first. Provide the most recent `revisionNumber` to ensure you're working with the latest data; otherwise, the update will return an error.
  - `name` string — The case-insensitive name of this account. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two accounts could both have the `name` "Accounts-Payable", but they could have unique `fullName` values, such as "Corporate:Accounts-Payable" and "Finance:Accounts-Payable". Maximum length: 31 characters.
  - `isActive` boolean — Indicates whether this account is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`.
  - `parentId` string — The parent account one level above this one in the hierarchy. For example, if this account has a `fullName` of "Corporate:Accounts-Payable", its parent has a `fullName` of "Corporate". If this account is at the top level, this field will be `null`.
  - `accountType` 'accounts_payable' | 'accounts_receivable' | 'bank' | 'cost_of_goods_sold' | 'credit_card' | 'equity' | 'expense' | 'fixed_asset' | 'income' | 'long_term_liability' | 'non_posting' | 'other_asset' | 'other_current_asset' | 'other_current_liability' | 'other_expense' | 'other_income' — The classification of this account, indicating its purpose within the chart of accounts. **NOTE**: You cannot create an account of type `non_posting` through the API because QuickBooks creates these accounts behind the scenes.
  - `accountNumber` string — The account's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API.
  - `bankAccountNumber` string — The bank account number or identifying note for this account. Access to this field may be restricted based on permissions.
  - `description` string — A description of this account.
  - `openingBalance` string — The amount of money in, or the value of, this account as of `openingBalanceDate`. On a bank statement, this would be the amount of money in the account at the beginning of the statement period.
  - `openingBalanceDate` string, date — The date of the opening balance of this account, in ISO 8601 format (YYYY-MM-DD).
  - `salesTaxCodeId` string — The default sales-tax code for transactions with this account, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
  - `taxLineId` number — The identifier of the tax line associated with this account. You can see a list of all available values for this field by calling the endpoint for account tax lines.
  - `currencyId` string — The account's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable.

## Response `200`

Returns the updated account.

- QbdAccount
  - `id` string, required — The unique identifier assigned by QuickBooks to this account. This ID is unique across all accounts but not across different QuickBooks object types.
  - `objectType` 'qbd_account', required — The type of object. This value is always `"qbd_account"`.
  - `createdAt` string, required — The date and time when this account was created, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.
  - `updatedAt` string, required — The date and time when this account was last updated, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.
  - `revisionNumber` string, required — The current QuickBooks-assigned revision number of this account object, which changes each time the object is modified. When updating this object, you must provide the most recent `revisionNumber` to ensure you're working with the latest data; otherwise, the update will return an error.
  - `name` string, required — The case-insensitive name of this account. Not guaranteed to be unique because it does not include the names of its hierarchical parent objects like `fullName` does. For example, two accounts could both have the `name` "Accounts-Payable", but they could have unique `fullName` values, such as "Corporate:Accounts-Payable" and "Finance:Accounts-Payable".
  - `fullName` string, required — The case-insensitive fully-qualified unique name of this account, formed by combining the names of its hierarchical parent objects with its own `name`, separated by colons. For example, if an account is under "Corporate" and has the `name` "Accounts-Payable", its `fullName` would be "Corporate:Accounts-Payable". **NOTE**: Unlike `name`, `fullName` is guaranteed to be unique across all account objects. However, `fullName` can still be arbitrarily changed by the QuickBooks user when they modify the underlying `name` field.
  - `isActive` boolean, required — Indicates whether this account is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`.
  - `parent` object, nullable, required — The parent account one level above this one in the hierarchy. For example, if this account has a `fullName` of "Corporate:Accounts-Payable", its parent has a `fullName` of "Corporate". If this account is at the top level, this field will be `null`.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `sublevel` number, required — The depth level of this account in the hierarchy. A top-level account has a `sublevel` of 0; each subsequent sublevel increases this number by 1. For example, an account with a `fullName` of "Corporate:Accounts-Payable" would have a `sublevel` of 1.
  - `accountType` 'accounts_payable' | 'accounts_receivable' | 'bank' | 'cost_of_goods_sold' | 'credit_card' | 'equity' | 'expense' | 'fixed_asset' | 'income' | 'long_term_liability' | 'non_posting' | 'other_asset' | 'other_current_asset' | 'other_current_liability' | 'other_expense' | 'other_income', required — The classification of this account, indicating its purpose within the chart of accounts. **NOTE**: You cannot create an account of type `non_posting` through the API because QuickBooks creates these accounts behind the scenes.
  - `specialAccountType` 'accounts_payable' | 'accounts_receivable' | 'condense_item_adjustment_expenses' | 'cost_of_goods_sold' | 'direct_deposit_liabilities' | 'estimates' | 'exchange_gain_loss' | 'inventory_assets' | 'item_receipt_account' | 'opening_balance_equity' | 'payroll_expenses' | 'payroll_liabilities' | 'petty_cash' | 'purchase_orders' | 'reconciliation_differences' | 'retained_earnings' | 'sales_orders' | 'sales_tax_payable' | 'uncategorized_expenses' | 'uncategorized_income' | 'undeposited_funds', nullable, required — Indicates if this account is a special account automatically created by QuickBooks for specific purposes.
  - `isTaxAccount` boolean, nullable, required — Indicates whether this account is used for tracking taxes.
  - `accountNumber` string, nullable, required — The account's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API.
  - `bankAccountNumber` string, nullable, required — The bank account number or identifying note for this account. Access to this field may be restricted based on permissions.
  - `description` string, nullable, required — A description of this account.
  - `balance` string, nullable, required — The current balance of this account only, excluding balances from any subordinate accounts, represented as a decimal string. Compare with `totalBalance`. Note that income accounts and balance sheet accounts may not have balances.
  - `totalBalance` string, nullable, required — The combined balance of this account and all its sub-accounts, represented as a decimal string. For example, the `totalBalance` for XYZ Bank would be the total of the balances of all its sub-accounts (checking, savings, and so on). If XYZ Bank did not have any sub-accounts, `totalBalance` and `balance` would be the same.
  - `salesTaxCode` object, nullable, required — The default sales-tax code for transactions with this account, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `taxLineDetails` QbdTaxLineInfo, required
    - `taxLineId` number, required — The identifier of the tax line associated with this account. You can see a list of all available values for this field by calling the endpoint for account tax lines.
    - `taxLineName` string, nullable, required — The name of the tax line associated with this account, as it appears on the tax form.
  - `cashFlowClassification` 'financing' | 'investing' | 'none' | 'not_applicable' | 'operating', nullable, required — Indicates how this account is classified for cash flow reporting. If `none`, the account has not been classified. If `not_applicable`, the account does not qualify to be classified (e.g., a bank account tracking cash transactions is not part of a cash flow report).
  - `currency` object, nullable, required — The account's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `customFields` QbdCustomField[], required — The custom fields for the account object, added as user-defined data extensions, not included in the standard QuickBooks object.
    - `ownerId` string, required — The identifier of the owner of the custom field, which QuickBooks internally calls a "data extension". For public custom fields visible in the UI, such as those added by the QuickBooks user, this is always "0". For private custom fields that are only visible to the application that created them, this is a valid GUID identifying the owning application. Internally, Conductor always fetches all public custom fields (those with an `ownerId` of "0") for all objects.
    - `name` string, required — The name of the custom field, unique for the specified `ownerId`. For public custom fields, this name is visible as a label in the QuickBooks UI.
    - `type` 'amount_type' | 'date_time_type' | 'integer_type' | 'percent_type' | 'price_type' | 'quantity_type' | 'string_1024_type' | 'string_255_type', required — The data type of this custom field.
    - `value` string, required — The value of this custom field. The maximum length depends on the field's data type.

---

[API](https://skmtc.net/conductor-is/apis/conductor-api.md) · [All operations](https://skmtc.net/conductor-is/apis/conductor-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/conductor-is/conductor-api/versions/0b07b3ebe160/schema)
