Skip to content

Frequently asked questions

About EasyTestData, QuickBooks Online (QBO) sandboxes, and EasyTestData Cloud.

General

What is EasyTestData?

EasyTestData is an open-source generator that fills a QBO sandbox with a year of financially coherent books (customers, invoices, bills, payments, payroll) and purges it cleanly when you're done. It ships 8 industry templates, 8 scenarios and 15 transaction types.

Who is it for?

Developers building QBO integrations, QA engineers, CI pipelines, and consultants or trainers who need a realistic sandbox company for a demo or a class.

Is it really open source?

Yes. Every package in the repository (generation engine, QBO client, CLI, API server and web app) is licensed under Apache-2.0. You can run all of it on your own computer with no limits.

What is EasyTestData Cloud?

A hosted instance of the same open-source code at easytestdata.com, so you don't have to run the server, database and Intuit app yourself. It's free.

Is it free?

Yes. EasyTestData is open source (Apache-2.0). Run it locally with no limits, or use EasyTestData Cloud for free, with generous limits to prevent abuse.

The data

How realistic is the generated data?

The records are synthetic, but the relationships are coherent: invoices and sales receipts sum to the revenue target, bills, expenses and payroll sum to the expense budget, and payments, credit memos and bill payments reference real invoices and bills. Customers, vendors and employees get realistic names, addresses, emails and phone numbers, and every generated record is tagged so it can be found and purged.

How much data does a run create?

For 12 months, roughly 250 transactions for the smallest scenario up to about 2,950 for the largest, plus 15 to 130 customers, vendors and employees. The quick-demo scenario covers three months and is the fastest first load. You can preview exact counts in the playground.

Does it work with production QBO companies?

No, and it can't. Every request goes through assertSandboxBaseUrl in qbo-client.js, which refuses any host other than sandbox-quickbooks.api.intuit.com; the production QuickBooks address doesn't appear anywhere in the source code, and the tests use it only to prove the check rejects it. On top of that, Intuit development keys can only authorize sandbox companies, and the only OAuth scope requested is com.intuit.quickbooks.accounting. Never load generated data into real books.

Why does profit in QuickBooks differ?

The headline number is a target profit before credits, refunds and adjustments: revenue and expenses are allocated to hit it exactly. QBO's Profit and Loss report then subtracts the credit memos, refunds, vendor credits and depreciation entries that make the books realistic, so it lands a bit lower.

Which countries are supported?

US-first. UK, Australian and Canadian locales are newer and less tested: they change employee names, addresses, currency and payment terms, but loading into non-US QBO sandboxes hasn't been verified yet.

What does "deterministic seed" mean?

With the same template, scenario, date range and --seed, you get identical data every time, on any machine. That makes failing tests reproducible.

What does purge remove, exactly?

Everything EasyTestData creates is tagged (default EZTD). easytestdata purge --mode generated deletes the transactions it tagged and makes the customers, vendors, employees and items it created inactive, because QuickBooks doesn't allow deleting those. The accounts it created stay. Anything you created by hand is left alone. If you load two datasets with different tags, purge them separately by tag.

Security

How are QBO tokens stored?

In the web app, on EasyTestData Cloud or on your own computer, a connection stores the sandbox's realm ID, its company name and the OAuth tokens, encrypted at rest with AES-256-GCM and a per-row initialization vector. Disconnecting the sandbox deletes them. The CLI stores its connection in .easytestdata.json on your machine; keep that file out of version control.

What does EasyTestData do in my sandbox?

It creates accounts, customers, vendors, employees, items and transactions; reads what it needs to look up accounts and find tagged records; and deletes or inactivates records only when you run a purge.

EasyTestData Cloud limits

What are the Cloud limits?

Cloud limits exist only to prevent abuse of the shared service: 3 QBO connections, 10 loads into QuickBooks per month (downloads and removals are free), 5,000 records per job and 5 members per team. Running it locally (npx easytestdata ui) has no limits.

Technical

How do I create, reset or refill a QBO sandbox?

Sandboxes come from a free Intuit developer account. The sandbox guide covers creating one, logging in, resetting it and filling it with EasyTestData; the reset guide is the short version for starting over in minutes.

Is there a CLI?

Yes: npx easytestdata, with generate, auth, load, purge, templates, presets and plan commands. See the CLI page.

Can I automate it?

Yes, with the CLI: easytestdata load and easytestdata purge run in any CI pipeline. The CI/CD page has a complete workflow.

How long does a load take?

It depends on how many records you generate and on QBO's API rate limit, which EasyTestData stays under automatically (with batching and retries). Smaller scenarios load much faster than the largest ones (start with the quick demo); generating the data itself takes milliseconds.

Still have a question?

Ask in GitHub Discussions. Found a bug? Open an issue. For EasyTestData Cloud account questions, email support@easytestdata.com.