Skip to content

QuickBooks: Full update a change order

QuickBooks changeorder.update: arguments, response, policy and SDK examples.

← changeorder operations · Get started · OpenAPI downloads

Contract 2026-10-20 · Operation quickbooks.changeorder.full_update_a_change_order

Provider route: POST /v3/company/{realmID}/changeorder. Alter supplies the connection’s credentials and routing.

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["changeorder"]["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.changeorder.update(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from 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.changeorder.update(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
queryobjectOptionalAdditional keys: not allowed
query.minorversionintegerOptionalMust equal: 75
query.requestidstringOptionalMinimum length: 1
bodyobjectRequired within parentFields not accepted: sparse
Additional keys: not allowed
body.AcceptedBystringOptionalName of the customer or representative who accepted the change order. Populated when TxnStatus is set to Accepted .
body.AcceptedDatestringOptionalDate the change order was accepted. Populated when TxnStatus is set to Accepted .
body.ApplyTaxAfterDiscountJSONOptionalIf false or null, sales tax is calculated first and then any discount is applied. If true , the discount is subtracted first and then sales tax is calculated.
body.ApplyTaxAfterDiscount (anyOf 1)booleanAlternative
body.ApplyTaxAfterDiscount (anyOf 2)stringAlternativeOne of: true, false
body.BillEmailModelOptionalExpand Full update companyinfo — request body — body Email
Email address where the change order is sent. Required when EmailStatus is set to NeedToSend .
Conditionally required
body.CustomerMemoModelOptionalExpand Void an invoice — request body — body Customer Memo
User-entered message to the customer; visible on the Change Order document sent to the customer.
body.CustomerRefModelOptionalExpand Create a purchase order — request body — body Ship To
Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Use Customer.Id and Customer.DisplayName from the Customer object for CustomerRef.value and CustomerRef.name , respectively.
body.DocNumberstringOptionalReference number for the change order (for example, CO-001 ). If not provided, the value is null.
body.EmailStatusstringOptionalEmail status of the change order. Valid values: NotSet , NeedToSend , EmailSent .
body.ExpirationDatestringOptionalDate by which the change order must be accepted before it expires.
body.IdstringRequired within parent
body.LinearrayOptionalIndividual line items describing the work being added or removed. Supports SalesItemLineDetail and SubTotalLineDetail line types. Every line must include a LinkedTxn array referencing the parent project estimate with TxnType: “Estimate” . All lines must reference the same parent estimate. The Line array uses full-replace behavior on update — lines omitted from an update request are deleted.
body.Line[]JSONEach item
body.Line[] (anyOf 1)ModelAlternativeExpand Create a change order — request body — body Line item
body.Line[] (anyOf 2)ModelAlternativeExpand Void an invoice — request body — body Line item Amount, Description, Detail Type, Id, Line Num, Sub Total Line Detail
body.Line[] (anyOf 3)ModelAlternativeExpand Void an invoice — request body — body Line item Amount, Description, Detail Type, Discount Line Detail, Id, Line Num
body.LinkedTxnarrayOptionalOne or more linked transaction references at the header level, reflecting the parent project estimate. Also appears on each line item. Use LinkedTxn.TxnId as the ID in a separate Estimate read request to retrieve details of the linked object. TxnType must always be Estimate .
body.LinkedTxn[]ModelEach itemExpand Create a bill — request body — body Linked Txn item
body.MetaDataModelOptionalExpand Read a bill — response body — Bill Meta Data
Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications.
body.PrintStatusstringOptionalPrinting status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .
body.PrivateNotestringOptionalOrganization-private note about the change order. This note does not appear on documents sent to the customer.
body.ProjectRefModelOptionalExpand Create a purchase order — request body — body Ship To
Reference to the project this change order belongs to. Must reference an active project. Without a valid ProjectRef , the change order will not appear in the Projects dashboard.
body.SyncTokenstringRequired within parent
body.TotalAmtJSONOptionalTotal amount of the transaction including all line charges and taxes. Calculated by QuickBooks business logic from the sum of all line Amount values plus applicable tax. Do not include in create or update request bodies; any value supplied is overwritten.
Decimal string
Read only: true
body.TotalAmt (anyOf 1)numberAlternative
body.TotalAmt (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:.[0-9]+)?$
body.TotalCostAmountJSONOptionalTotal cost amount of the transaction, calculated from the sum of all line CostAmount values. Calculated by QuickBooks business logic; any value supplied is overwritten.
Decimal string
Read only: true
body.TotalCostAmount (anyOf 1)numberAlternative
body.TotalCostAmount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:.[0-9]+)?$
body.TxnDatestringOptionalThe date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If not supplied, the current date on the server is used. Sort order is ASC by default.
body.TxnStatusstringOptionalCurrent status of the change order. Valid values: Pending (default — created but not yet reviewed), Accepted (customer approved; project contracted total increases accordingly), Closed (converted to an Invoice or manually closed), Rejected (customer declined; does not affect project total).
body.TxnTaxDetailModelOptionalExpand Create a bill — request body — body Txn Tax Detail
Tax details for the transaction. Captures sales taxes calculated based on tax codes referenced by the transaction lines.
body.domainstringOptional
body.sparsebooleanOptionalMust equal: false

Referenced models: Full update companyinfo — request body — body Email, Read a bill — response body — Bill Meta Data, Void an invoice — request body — body Line item Amount, Description, Detail Type, Discount Line Detail, Id, Line Num, Create a bill — request body — body Linked Txn item, Void an invoice — request body — body Customer Memo, Create a purchase order — request body — body Ship To, Create a change order — request body — body Line item, Void an invoice — request body — body Line item Amount, Description, Detail Type, Id, Line Num, Sub Total Line Detail, Create a bill — request body — body Txn Tax Detail

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$objectRootAdditional keys: allowed
timestringOptional
ChangeOrderModelOptionalExpand Read a change order — response body — Change Order

Referenced models: Read a change order — response body — Change Order

SDK function policy ID: quickbooks.changeorder.full_update_a_change_order. Catalog operation: changeorder/create_a_change_order. 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.

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.