> ## Documentation Index
> Fetch the complete documentation index at: https://zenofirm.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Work with several company files

> Register the companies you work on and understand which files QuickBooks can open at the same time.

A practice runs many company files, so you can register them by name and then say which one you mean. Registration is optional. With nothing registered, every tool works against whichever file QuickBooks has open, and a bookkeeper with one client never needs more than that.

## Setting up a new install

Open the **Setup Center** from **Start Menu → Zeno → Zeno for QuickBooks Desktop**, or ask your chat client to set up your company files. Follow the [company setup walkthrough](/docs/quickbooks-desktop/setup-companies) to authorize, mirror, and test each file.

Nobody types paths. `qb_discover_companies` reads QuickBooks' own record of files it has opened, plus the standard company-file folders, and comes back with what's on the machine. It opens no company file and doesn't need QuickBooks running.

The names it suggests are guesses from filenames. Confirm them before registering.

## Registering from the open file

Discovery's names and paths are guesses. The reliable route is to let QuickBooks supply them:

1. Open a client in QuickBooks.
2. Ask the agent to register the open company. It calls `qb_register_open_company`, which takes the company name and path as QuickBooks reports them.
3. Repeat for each client.

The name stored this way is the one QuickBooks will report later, and that name is what rules, notes, and journal entries are keyed to.

`qb_list_companies` shows what the workstation knows about. `qb_forget_company` removes a name and touches nothing else — not the file, not the rules, not the journal.

## One file at a time

<Warning>
  Registering a company names a file. Permission decides how it can be reached.
</Warning>

With **always allow** permission, Zeno can open a registered file invisibly — for reads, QuickBooks reports, `qb_sync_mirror`, and for posting. Name the company and the work reaches that client whether or not anyone has the file open. That is what lets mirrors refresh, and a batch post, without walking through every company window.

Two limits remain. QuickBooks Desktop works on one company file at a time, so if QuickBooks is open on a different client, naming this one fails before anything happens and says which file to switch to:

```
QuickBooks has 'Mosad Harim Levin' open; this call targets
'1505 55 Street LKL LLC'.

QuickBooks Desktop works on one company file at a time. Ask the user to
switch: File → Open Previous Company → 1505 55 Street LKL LLC, then run
this again. Nothing was posted.
```

<img src="https://mintcdn.com/zenofirm/VfRuieValpxF_E2q/images/illustrations/quickbooks-desktop/open-file-collision.svg?fit=max&auto=format&n=VfRuieValpxF_E2q&q=85&s=30fba797db3fd92538d800dc69ab7ae9" alt="Single Open File Collision Refusal" width="600" height="420" data-path="images/illustrations/quickbooks-desktop/open-file-collision.svg" />

Switch the file in QuickBooks and run the write again. Leave the company unnamed to work on whatever is open.

And a write that names *no* company still needs QuickBooks open, because nothing else can say which file it would land in. Name the company and it works with QuickBooks closed.

## Which name the audit trail carries

The QuickBooks **Admin** is needed once per company file, to grant the permission. It is never needed again: after that, any user may be signed in when Zeno works on the file, or nobody. Which login QuickBooks records depends on how the file was reached, and both are normal:

| How the file was reached | Who QuickBooks signs in as | What the audit trail says |
| - | - | - |
| Someone has it open in QuickBooks | Whoever is signed in, with that person's QuickBooks permissions | That person's name |
| Nobody has it open | The user you selected in the **always allow** dialog | That user's name |

The user selected in the dialog is used *only* for the closed-file case. It does not restrict who can be signed in interactively, and it does not have to be Admin. A dedicated **Zeno** user is worth creating for exactly this, so unattended work is attributable to the connector rather than to a person.

A user with restricted QuickBooks permissions can still block a specific action while the file is open under their login, exactly as it would block them in the QuickBooks window. That is a QuickBooks role limit, not a Zeno one.

`qb_run_detail` reports which of the two a run used. Zeno's own journal names the operator who drove it either way, which is a different fact — that is the one you reconcile against.

## Asking across every client at once

The [local copy](/docs/quickbooks-desktop/questions) has no such limit. Once a company has been synced, it can be queried with QuickBooks closed, with a different client open, or alongside every other synced company.

A question spanning the whole practice — which clients are behind on vendor payments, what every file spent with the same insurer — is one query against the mirrors, not an afternoon of opening files. [Your first questions](/docs/quickbooks-desktop/first-questions#the-whole-practice-at-once) walks it, including the eleven-client ceiling on a single query.

## Several bookkeepers, one set of books

Everything above is per workstation: the registered companies, the rules, the notes, the history. If your team works the same company files from several desks, point them all at one folder on the server and they share all of it — including duplicate detection, so a bill one bookkeeper posted comes back as already posted for the next. See [one journal for a whole team](/docs/quickbooks-desktop/shared-journal).

## What registering adds

* A stable key for [rules](/docs/quickbooks-desktop/memory#rules), [knowledge](/docs/quickbooks-desktop/memory#knowledge), and playbooks, so they attach to a client rather than to whatever was open.
* A local copy per company, and the cross-client questions above.
* Run journal entries scoped to the right client.

<img src="https://mintcdn.com/zenofirm/VfRuieValpxF_E2q/images/illustrations/quickbooks-desktop/registered-company-card.svg?fit=max&auto=format&n=VfRuieValpxF_E2q&q=85&s=861e0258223c037251741ebcf365be7e" alt="Registered Company Record" width="600" height="420" data-path="images/illustrations/quickbooks-desktop/registered-company-card.svg" />

## Where the list lives

The registry is stored with the run journal in `%LOCALAPPDATA%\Zeno\qb-mcp\`, not in `appsettings.json`. That file sits next to the program and is replaced when you upgrade, which would silently lose the client list.

A firm that deploys configuration centrally can still set `QuickBooks:Companies` in `appsettings.json`, and those entries win.

## Reviewing them

The console's **Company files** page lists what this workstation knows about, and the company picker in its sidebar scopes every other page to one client.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.