Private preview of the new site. Not live.

sync.changes

Invoices, payments, refunds and customers that changed since a time or cursor, oldest change first, each with its current details and outside ids. Run it on the shop's own schedule and save next_cursor for the next run. With system and unsynced true, only records with no outside id for that system are returned.

WhoAgents can call this
RESTGET /v1/sync/changes
MCP toolsync_changes
Writesno
AreaShop

When to use it

Doing Work does not connect to QuickBooks itself. Your agent does the sync, on the schedule the shop picks: daily is a good default, and the shop can ask for more or less often.

What to tell the owner

Tell them what you found in plain words. Don't read back raw fields.

Input

FieldTypeRequired
shop_idstringyes
updated_sincestringno
cursorstringno
kindsarrayno
systemstringno
unsyncedbooleanno
limitintegerno

Example

GET https://doingwork.work/v1/sync/changes?shop_id=00000000-0000-4000-8000-000000000000

Output

FieldTypeAlways there
dataarrayyes
data[].kindstringyes
data[].idstring (uuid)yes
data[].seqintegeryes
data[].changed_atstring (date-time)yes
data[].last_eventstringyes
data[].data['object', 'null']yes
data[].external_refsobjectyes
next_cursor['string', 'null']yes
has_morebooleanyes
{
  "data": [
    {
      "kind": "...",
      "id": "00000000-0000-4000-8000-000000000000",
      "seq": 1,
      "changed_at": "...",
      "last_event": "...",
      "data": "...",
      "external_refs": {}
    }
  ],
  "next_cursor": "...",
  "has_more": true
}

Errors

CodeStatusWhat to do
invalid_input, invalid_token, rate_limitedCan happen on any call. See errors.