Skip to Content
SimulatorsQuickBooks Online changelog

Simulators

QuickBooks Online changelog

What changed in each QuickBooks Online simulator release, newest first.

v0.0.2 — 2026-11-10

  1. A plan change during a scenario load no longer clears the simulator. When your plan changes while POST /_rystic/scenario, POST /_rystic/seed or POST /_rystic/reset is running, the request lands whole, or answers 403 and leaves the state as it was. Before, a scenario load could clear the state and then answer 403, and a scenario document sent to /_rystic/seed could answer 400 instead of 403.

v0.0.1 — 2026-11-08

  1. A local QuickBooks Online company for the code that keeps the books. The first release of the QuickBooks Online simulator: customers, the list entities, fourteen transactions, the TaxCode and TaxRate reads, CompanyInfo and the report reads, served on the Accounting API’s /v3/company/{realmId}/ paths in JSON at minorversion 75. Point node-quickbooks or python-quickbooks at it as the base URL with any OAuth token. Nothing reaches Intuit, no money moves and no email is sent.

  2. Customers and the rules QuickBooks applies to them. Create, read, sparse and full update, deactivate and reactivate customers, with every write checked against the customer’s current SyncToken and the company’s name rules. A sub-customer keeps the ParentRef, Job and BillWithParent you send.

  3. Five scenarios to boot straight into. quickbooks_customer_ledger (a bakery’s eight customers, most with open balances), quickbooks_fresh_books (a company opened a week ago), quickbooks_inactive_archive (mostly deactivated customers), quickbooks_job_hierarchy (a contractor’s customer tree two levels deep) and quickbooks_replay_desk (stored requestid responses). --scenario boots one, and POST /_rystic/scenario loads one without a restart.

  4. Tested against a live QuickBooks Online sandbox. The newest full measurement, of 2026-11-07, matched 491 of the 538 tests that compare the simulator with QuickBooks Online (91.3%), and 2 of those tests gave no verdict. The simulator’s page lists, under Limitations, the differences this release ships with.

  5. Transactions and the list entities they reference. Create and read vendors, employees, items, accounts, classes, departments, terms and payment methods, and fourteen transactions from Invoice to Transfer. Each transaction checks the records it references, deletes with ?operation=delete, and Invoice, Payment, SalesReceipt and BillPayment can be voided.

  6. CompanyInfo reads the realm’s own company. The CompanyInfo read returns only the company seeded under the realm in its path, and a realm with no seeded company returns 403 AuthorizationFault instead of a placeholder company or another realm’s. A field the seeded company leaves out is filled in, and CompanyName and LegalName default to Company <realmId>.

  7. Payments and invoices move the balances they touch. A payment lowers the Balance of each invoice it links and of its customer, and deleting or voiding it gives both back; the invoice also lists the payment in its LinkedTxn and raises its SyncToken. Creating, deleting or voiding an invoice moves its customer’s Balance the same way. A payment whose invoice is deleted or voided stays, unapplied.

  8. --describe reports where the simulator answers and how it delivers webhooks. The description lists the hosts the simulator answers for, when it has any, and how it delivers webhooks, including a receiver once one is set.

Last updated on