DocsSign inInstall Kastel
All connectors

QuickBooks only issues a write-capable key, and Kastel's connector can do nothing but read.

With Kastel

The key QuickBooks issues grants write access, and the connector has no way of using it. It reads four lists from the authorised company, sales invoices, purchase bills, customers and suppliers, and writes the number, date, counterparty, total and a status. Line item detail stays out, and none of it is readable until an administrator has named which department may read it.

Intuit offers one key, and it can write

A director weighing up whether to plug an AI into the company books usually asks the question the other way round. Could this AI change anything. On QuickBooks the question is well founded, because Intuit offers a single permission for accounting data and that permission grants both reading and writing. There is no read-only permission to ask for.

So the connector settles it in its own code. It can do exactly one thing, fetch a list, and it exposes no operation to create, amend or delete. The key keeps a power that no line of the connector ever exercises.

That limit deserves to be stated as it is, because it does not come from Intuit. On Xero, a read-only permission exists and is the one the connector asks for. Here there is nothing of the kind to ask for, and the restraint sits in the software you install.

The sorting happens at our end, field by field

The query the connector sends to QuickBooks returns the whole object. Intuit's interface cannot hand back part of an invoice, it hands back the invoice with everything in it, addresses and contact details included. A connector can sort through what has already landed at its end, provided it can draw up the complete list of what must be hidden and keep that list current.

This one works from the opposite list. It names the fields it writes and writes those only. A field Intuit might add tomorrow would get no further, because it would not be read.

When an expected field does not have the shape it should, the connector drops it rather than copying it out wholesale. What comes in is then thinner, never more talkative, and on a source like this one that direction of failure is what matters.

The fields that come in, and the ones never read

On an accounting source, scope is described in fields. The ones below are exactly the ones the connector names.

What your Kastel reads in QuickBooks

  • The number and date of your sales invoices and purchase bills
  • The name of the customer or supplier the document carries
  • The document's total and currency
  • A status, paid, unpaid or voided
  • The display name of your customers and suppliers, with their role

What it never reads

  • Line items, descriptions, quantities and unit prices
  • The billing address and the shipping address
  • The email address and phone number of a customer or supplier
  • Bank details held on a counterparty or a payment

Two fields are read without ever being written. The outstanding balance only serves to say whether the document is paid, and the private note only serves to spot a voided document. Neither the balance amount nor the text of the note comes into your Kastel.

What each QuickBooks object becomes

Four lists come in, and each object yields one governed record. Every row below can be checked in your own QuickBooks.

In QuickBooksIn your Kastel
Sales invoiceNumber, date, customer name, total and currency, status
Purchase billNumber, date, supplier name, total and currency, status
CustomerDisplay name and customer role
SupplierDisplay name and supplier role
Voided invoiceStill present, total at zero, status voided
Permanently deleted invoiceFlagged as vanished at the source and retained

The last two rows do not describe the same thing. Voiding an invoice in QuickBooks leaves it in the lists, so the connector rereads it and updates its status. A permanent deletion removes it from the lists, and that absence is the only thing the connector can observe, because it does not read QuickBooks's change log.

One company per connection, and nothing crosses over

A QuickBooks authorisation covers a single company. That company's identifier travels in the address of every call, and it is also what files the key and the records coming from it.

A group holding three companies in QuickBooks therefore opens three connections. Each has its own key and its own space, and no key is ever used to read another company's accounts. Stopping one of them changes nothing for the two that remain.

The connector refuses to start at all if the authorisation hands it no company identifier. No key is stored in that case, because a key nobody could say which set of accounts it opens has no business being in a safe. Disconnecting a company later removes its key and leaves in place what has already come in, as with every connector.

One decision covers the whole ledger

That leaves the question that governs all the others. Who, in your company, will be entitled to read what the connector writes. QuickBooks sets no read permission on an individual invoice, and the authorisation sees the entire ledger. So the connector applies one decision to all four lists, and by default that decision is that nobody reads.

For the accounts to become readable, an administrator designates the department that owns them. Three checks follow, and they bear on the name given, on its form, and on whether that department genuinely exists in your organisation. Any one of them failing sends the whole thing back to waiting.

The department designated this way reads the accounts of every connected company, not just one of them. The read scope is a single one for all the companies you plug in, which is worth knowing before you connect the second.

The list of conditions only works in one direction. It authorises what it recognises and refuses everything else, including a department name that matches nothing in your organisation. The same logic governs everything your company knows.

What this connector does not do

The key keeps the right to write, because Intuit offers no other. The restraint lies in the connector's code, which has no write operation, and not in a limit set by QuickBooks. We would rather say so than let anyone believe in a restriction coming from Intuit.

QuickBooks keeps a log of what has moved since the last read. The connector does not open it, and rereads all four lists in full on every pass. An invoice entered this morning comes in on the following pass, not the second it is approved.

For an individual customer, QuickBooks puts the person's name in the display name field. The connector writes that field, so the name comes into your Kastel like a company's. That is also why the accounts stay on hold until a department has been designated.

An invoice you delete permanently in QuickBooks is not erased from your Kastel. Its record stays there, marked as gone at the source, and the circle of people who can read it does not move. Erasing it for good is an administrator's decision. That rule holds for every Kastel connector, and on an accounting source it protects more than it hinders.

Ask us the question that is holding you back.

Most directors first ask whether an AI could change their books, then what exactly it would see. Describe your QuickBooks setup and how many companies are involved, and we will answer on your case rather than in general.

Get in touch
Other connectors in detail
Pennylane
Number, date, counterparty and total. Never the bank details.
Sage
It reads three lists and never asks for bank details.
Xero
One key per organisation, and the status exactly as Xero writes it.

See the full connector catalogue