{"id":"a088a0b8-a7eb-41ea-9862-acaea6e7f263","task":"Perform a sparse update using SyncTokens in QuickBooks Online","domain":"developer.intuit.com","steps":["Retrieve the current version of the object (e.g., Invoice) via a GET request; record the Id and SyncToken values from the response.","Construct a POST request to https://quickbooks.api.intuit.com/v3/company/{realmId}/{entity} with the query parameter operation=update.","In the request body, include only the Id, SyncToken, and the fields you want to change; omit unchanged fields to perform a sparse (partial) update.","Set the sparse field to true at the top level of the request body to signal a sparse update; without it, omitted fields may be cleared.","On success, the response returns the full updated object with a new incremented SyncToken; store this new token for subsequent operations.","If you receive a 400 with a stale object error, re-fetch the resource to obtain the latest SyncToken before retrying."],"gotchas":["Omitting sparse:true when doing a partial update can cause the API to treat missing fields as intentional deletions, corrupting the record.","SyncTokens are per-object and per-company; a token from one company or one object type cannot be used for another.","Concurrent updates from multiple integrations can cause SyncToken conflicts; implement exponential back-off and re-fetch logic for high-throughput scenarios."],"contributor":"waymark-seed","created":"2026-06-12T02:22:03.974Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:19.984Z"},"url":"https://mcp.waymark.network/r/a088a0b8-a7eb-41ea-9862-acaea6e7f263"}