# Set up a test environment
Source: https://www.desktopaccountingapi.com/docs/quickbooks/test-environment/

> Run QuickBooks Desktop with a sample company file on a Windows machine or virtual desktop to develop and test your integration for free.

You need a Windows machine with QuickBooks Desktop to develop against this API. A test project, a sample company file and a QuickBooks trial installation cost nothing on our side.

## What you need

- **A Windows computer.** A spare PC, a virtual machine, or a cloud Windows desktop such as Amazon WorkSpaces or an Azure virtual machine. Use a Windows version that your QuickBooks release supports.
- **QuickBooks Desktop.** A US edition: Pro, Premier, Accountant or Enterprise. A trial installation from Intuit works. Members of Intuit's developer and partner programs can also get not-for-resale licenses from Intuit.
- **The QuickBooks Web Connector.** Recent QuickBooks releases install it. Otherwise download it from Intuit. You need version 2.2.0.34 or newer.
- **A company file.** QuickBooks includes sample companies (open **File › Open or Restore Company › Open a sample file**). For realistic tests, create a company and enter some data, or restore a backup you are allowed to use.

## Connect it

1. In the dashboard, use the free **Development** test project and create a `sk_test_` key.
2. Create an end user for your test company.
3. Create a setup link and open it on the Windows machine. Follow the steps in [Connect QuickBooks Desktop](https://www.desktopaccountingapi.com/docs/help/setup/).
4. Run the [quickstart](https://www.desktopaccountingapi.com/docs/get-started/quickstart/) against it.

## Tips

- **Restore a known baseline before write tests.** Back up the company file once (**File › Back Up Company**). Restore it before each test run so tests start from the same data. Restoring a backup made before you connected the app removes the connector's registration from the file, so make the baseline backup after setup. See [Requests stop working after restoring a backup](https://www.desktopaccountingapi.com/docs/help/connection-errors/restored-backup/).
- **Turn off pop-ups.** Sample files and trials show reminders, update notices and usage study invitations that block integrations while open. Answer them once and turn off what you can in **Edit › Preferences**.
- **Sample company dates.** Some Intuit sample files show a fixed "today" date that differs from your calendar. Timestamps such as `createdAt` follow the sample's clock; request timings follow real time.
- **Keep the machine awake.** Disable sleep, and keep the Windows user signed in with the Web Connector running. A locked screen is fine; a signed-out user is not.
- **Test the unhappy paths.** Close the Web Connector, open a dialog in QuickBooks, open a different company file, switch to multi-user mode. Each should produce a clear error in your product.

## Several QuickBooks versions

Your customers run different editions and years. If you support older releases, keep a machine (or snapshot) per version you care about, and check [Editions, versions and features](https://www.desktopaccountingapi.com/docs/quickbooks/editions-and-features/) for fields that need a newer qbXML version. Install one QuickBooks version per machine; side-by-side versions confuse the Web Connector.
