QuickBooks: Full update a customer
QuickBooks customer.update: arguments, response, policy and SDK examples.
← customer operations · Get started · OpenAPI downloads
Contract 2026-10-20 · Operation quickbooks.customer.full_update_a_customer
Provider route: POST /v3/company/{realmID}/customer. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/quickbooks with npm, or alter-sdk-quickbooks with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { QuickBooksIntegration } from "@alter-ai/quickbooks";
async function execute(input: Parameters<QuickBooksIntegration["customer"]["update"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new QuickBooksIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.customer.update(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_quickbooks import QuickBooksIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = QuickBooksIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.customer.update(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
query | object | Optional | Additional keys: not allowed |
query.minorversion | integer | Optional | Must equal: 75 |
query.requestid | string | Optional | Minimum length: 1 |
body | object | Required within parent | Fields not accepted: sparse Additional keys: not allowed |
body.Active | JSON | Optional | If true, this entity is currently enabled for use by QuickBooks. If there is an amount in Customer.Balance when setting this Customer object to inactive through the QuickBooks UI, a CreditMemo balancing transaction is created for the amount. |
body.Active (anyOf 1) | boolean | Alternative | |
body.Active (anyOf 2) | string | Alternative | One of: true, false |
body.AlternatePhone | Model | Optional | Expand Create a vendor — request body — body Fax Alternate phone number. |
body.Balance | JSON | Optional | Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create. Decimal string |
body.Balance (anyOf 1) | number | Alternative | |
body.Balance (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:.[0-9]+)?$ |
body.BalanceWithJobs | JSON | Optional | Cumulative open balance amount for the Customer (or Job) and all its sub-jobs. Cannot be written to QuickBooks. Decimal string |
body.BalanceWithJobs (anyOf 1) | number | Alternative | |
body.BalanceWithJobs (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:.[0-9]+)?$ |
body.BillAddr | Model | Optional | Expand Create a vendor — request body — body Bill Addr Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. |
body.BillWithParent | JSON | Optional | If true, this Customer object is billed with its parent. If false, or null the customer is not to be billed with its parent. This attribute is valid only if this entity is a Job or sub Customer. |
body.BillWithParent (anyOf 1) | boolean | Alternative | |
body.BillWithParent (anyOf 2) | string | Alternative | One of: true, false |
body.CompanyName | string | Optional | The name of the company associated with the person or organization. |
body.CurrencyRef | Model | Optional | Expand Create a purchase order — request body — body Ship To Reference to the currency in which all amounts associated with this customer are expressed. Once set, it cannot be changed. If specified currency is not currently in the company’s currency list, it is added. If not specified, currency for this customer is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency . Read only: true |
body.CustomerTypeRef | Model | Optional | Expand Create a customer — request body — body Customer Type Ref Reference to the customer type assigned to a customer. This field is only returned if the customer is assigned a customer type. |
body.DefaultTaxCodeRef | Model | Optional | Expand Create a purchase order — request body — body Ship To Reference to a default tax code associated with this Customer object. Reference is valid if Customer.Taxable is set to true; otherwise, it is ignored. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the default tax code is set by the system and can not be overridden. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for DefaultTaxCodeRef.value and DefaultTaxCodeRef.name , respectively. |
body.DisplayName | string | Optional | The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix . Conditionally required |
body.FamilyName | string | Optional | Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required. Conditionally required |
body.Fax | Model | Optional | Expand Create a vendor — request body — body Fax Fax number. |
body.FullyQualifiedName | string | Optional | Fully qualified name of the object. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Customer:Job:Sub-job . System generated. Limited to 5 levels. Read only: true |
body.GivenName | string | Optional | Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required. Conditionally required |
body.Id | string | Required within parent | |
body.IsProject | JSON | Optional | If true, indicates this is a Project. Read only: true |
body.IsProject (anyOf 1) | boolean | Alternative | |
body.IsProject (anyOf 2) | string | Alternative | One of: true, false |
body.Job | JSON | Optional | If true, this is a Job or sub-customer. If false or null, this is a top level customer, not a Job or sub-customer. |
body.Job (anyOf 1) | boolean | Alternative | |
body.Job (anyOf 2) | string | Alternative | One of: true, false |
body.Level | JSON | Optional | Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be level with respect to the parent. Constraints: up to 5 levels Read only: true |
body.Level (anyOf 1) | integer | Alternative | |
body.Level (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+$ |
body.MetaData | Model | Optional | Expand Read a bill — response body — Bill Meta Data Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications. |
body.MiddleName | string | Optional | Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required. Conditionally required |
body.Mobile | Model | Optional | Expand Create a vendor — request body — body Fax Mobile phone number. |
body.Notes | string | Optional | Free form text describing the Customer. |
body.OpenBalanceDate | string | Optional | Date of the Open Balance for the create operation. Write-on-create. |
body.ParentRef | Model | Optional | Expand Create a purchase order — request body — body Ship To A reference to a Customer object that is the immediate parent of the Sub-Customer/Job in the hierarchical Customer:Job list. Required for the create operation if this object is a sub-customer or Job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for ParentRef.value and ParentRef.name , respectively. |
body.PaymentMethodRef | Model | Optional | Expand Create a purchase order — request body — body Ship To Reference to a PaymentMethod associated with this Customer object. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively. |
body.PreferredDeliveryMethod | string | Optional | Preferred delivery method. Values are Print, Email, or None. |
body.PrimaryEmailAddr | Model | Optional | Expand Full update companyinfo — request body — body Email Primary email address. |
body.PrimaryPhone | Model | Optional | Expand Create a vendor — request body — body Fax Primary phone number. |
body.PrimaryTaxIdentifier | string | Optional | Also called Tax Reg. No in ( UK ) , ( CA ) , ( IN ) , ( AU ) represents the tax ID of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 . |
body.PrintOnCheckName | string | Optional | Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName. Constraints: Cannot be removed with sparse update. |
body.ResaleNum | string | Optional | Resale number or some additional info about the customer. |
body.SalesTermRef | Model | Optional | Expand Create a purchase order — request body — body Ship To Reference to a SalesTerm associated with this Customer object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively. |
body.SecondaryTaxIdentifier | string | Optional | Also called UTR No. in ( UK ) , CST Reg No. ( IN ) also represents the tax registration number of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 . |
body.ShipAddr | Model | Optional | Expand Create a vendor — request body — body Bill Addr Default shipping address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. |
body.Source | string | Optional | The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce |
body.Suffix | string | Optional | Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required. Conditionally required |
body.SyncToken | string | Required within parent | |
body.TaxExemptionReasonId | string | Optional | The tax exemption reason associated with this customer object. Applicable if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) for the company. Set TaxExemptionReasonId: to one of the following: Id Reason 1 Federal government 2 State government 3 Local government 4 Tribal government 5 Charitable organization 6 Religious organization 7 Educational organization 8 Hospital 9 Resale 10 Direct pay permit 11 Multiple points of use 12 Direct mail 13 Agricultural production 14 Industrial production / manufacturing 15 Foreign diplomat |
body.Taxable | JSON | Optional | If true, transactions for this customer are taxable. Default behavior: true, if DefaultTaxCodeRef is defined or false if TaxExemptionReasonId is set. |
body.Taxable (anyOf 1) | boolean | Alternative | |
body.Taxable (anyOf 2) | string | Alternative | One of: true, false |
body.Title | string | Optional | Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required. Conditionally required |
body.WebAddr | Model | Optional | Expand Create a vendor — request body — body Web Addr Website address. |
body.domain | string | Optional | |
body.sparse | boolean | Optional | Must equal: false |
Referenced models: Full update companyinfo — request body — body Email, Read a bill — response body — Bill Meta Data, Create a vendor — request body — body Bill Addr, Create a vendor — request body — body Fax, Create a vendor — request body — body Web Addr, Create a customer — request body — body Customer Type Ref, Create a purchase order — request body — body Ship To
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: allowed |
time | string | Optional | |
Customer | Model | Optional | Expand Read a customer — response body — Customer |
Referenced models: Read a customer — response body — Customer
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: quickbooks.customer.full_update_a_customer. Catalog operation: customers/create. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.