Security

Read-first, approval-gated, and honest about the gaps.

ezbooks.ai holds access to your accounting records. Here is exactly what that access looks like, what protects it, and what we are not claiming.

What we do

Least-privilege access

ezbooks.ai requests the narrowest QuickBooks scopes the product needs, and writes stay disabled until you approve a specific change.

Server-only provider credentials

QuickBooks tokens are encrypted and stored in a table no browser role can read. They are decrypted only inside server code, never sent to your browser or included in logs.

Tenant-isolated data

Every record carries an organization ID, and database row-level security derives access from organization membership. Cross-organization reads are denied by default.

Signed webhooks with replay protection

Incoming provider and billing webhooks are verified against the raw request body, and each event ID is processed at most once.

Redacted, correlated logs

Logs carry correlation IDs and status, not tokens, secrets or full provider payloads, so support can trace a request without reading your books.

Disconnect and delete controls

You can disconnect QuickBooks at any time, which revokes the stored tokens, and request deletion of your organization's data.

How a change is allowed to happen

  1. 1

    Typed action allowlist

    The AI can only propose a small set of predefined, schema-validated actions. Unknown action types and unknown fields are rejected before a human ever sees them.

  2. 2

    Deterministic validation

    Every proposal is checked in code against your books — closed periods, account classification, duplicate risk, missing records — with no model in the loop.

  3. 3

    Fresh-state re-check

    Before execution, each record is re-fetched and its version compared. If QuickBooks changed underneath the preview, the action stops and nothing is charged.

  4. 4

    Idempotent execution

    Approved work runs once under a deterministic key. A retry cannot double-apply a change, and credits are only charged after a confirmed success.

  5. 5

    Untrusted accounting data

    Memos, descriptions and vendor names are treated as data, never as instructions. Text inside your books cannot change what the system is allowed to do.

  6. 6

    Complete audit trail

    Who approved what, when, against which records, with what result — appended and never edited. No credentials, raw payloads or model traces are stored in it.

What we do not claim

  • We do not hold a SOC 2 report. When that changes, this page will say so with a date and an auditor.
  • We do not claim bank-level or military-grade security. Those phrases mean nothing specific.
  • We are a private beta. Treat this as pre-GA software and keep your own backups and accountant review in place.
  • We do not perform formal reconciliation and we do not replace an accountant. ezbooks.ai assists with review and preparation; sign-off stays with you.

Live writes are off by default

Writing to a live QuickBooks company is gated behind a server-side flag that is disabled in every environment by default. There is no setting in the app that can turn it on. Until it is enabled after accountant review, approved actions run against the demo adapter and are labelled as such.

QuickBooks is a trademark of Intuit Inc.; ezbooks.ai is independent and is not affiliated with or endorsed by Intuit.