Privacy Policy

v1.5.5Effective 2026-10-02· Updated 2026-10-13

Privacy Policy

Your financial data stays on your computer. That's the core of Solid Accounting: the app is local-first, and by default your books never leave your machine. We built it because we believe your business data should be under your control, not ours.

Some optional, opt-in features do send data off your device when you turn them on — bank feeds pull transactions through a third-party aggregator, cloud backup stores an encrypted copy of your books off-site, and the online invoicing portal processes invoices on our servers. Each of these is off by default, and each is described in full below. Where your data leaves your device, we tell you exactly what leaves, why, who touches it, and how long we keep it.

Here's exactly what we do and don't collect.

What we collect

When you buy Solid Accounting

Your name, email, and payment info. Stripe handles the payment — we never see your credit card number. We use this to send your license key and provide support.

Why we can do this: We need it to fulfill your purchase (this is "contractual necessity" under GDPR, and "performing a contract" under general privacy law).

When you activate your license

Your license key, a machine identifier, and the random install ID described under What the app always sends. We use this to verify your license and count activations. No financial data is sent.

When you start a free trial

Starting a trial needs an internet connection. The app sends our license server a computer signature, the app version, your operating system and the plan you're trying. The computer signature is a one-way code the app makes from your computer's own ID. It can't be turned back into that ID, and the ID itself never leaves your computer. We don't receive your name, your email or anything from your books.

We use the signature to allow one free trial per computer. If this computer has already had a trial, we won't start another one. We also keep a scrambled code for the network the trial started from (not your IP address), so we can spot many trials started from one place. While the trial runs, the app also tells us how many Local API calls and file exports it has used that month, because trials have monthly limits on both.

This happens whether or not you allow usage data, because it's how a trial is checked, in the same way as license activation.

Why we can do this: it's needed to provide the trial on the terms we offer it (contractual necessity), and to prevent misuse of free trials (legitimate interest).

Website visits

We use two kinds of website analytics. Neither uses cookies, and neither follows you to other sites.

  • Plausible Analytics gives us aggregate counts, like "47 people visited the pricing page today."
  • Our own analytics, which we host on our own server, records one browser tab's visit:
    • the page you arrived on
    • the site that referred you (its domain only)
    • any campaign tags in the link
    • the pages you viewed, in order
    • roughly how long each part of a page was on screen, and how far you scrolled
    • which buttons you clicked
    • whether the visit ended in a waitlist signup, a download, or a purchase

The visit gets a random ID that exists only in that browser tab and is discarded when the tab closes. We don't recognize you when you come back later. We use this to see which pages help and where people get stuck.

If your browser sends Do Not Track or Global Privacy Control, our analytics records nothing.

Links from our team. If you've spoken with someone at Solid Accounting, the link they send you afterward may include a short code (the part after ?l=). That code is tied to our record of the conversation. When you visit through that link, we can see which pages you looked at during that visit, so our follow-up is useful. We never sell or share this information. To opt out, remove the code from the link, turn on Do Not Track, or email us.

Referral links. If you arrive through an accountant's referral link, we set one first-party cookie, sa_partner_code. It holds that partner's code for 90 days so the referral is credited if you buy. It contains no personal information and is used for nothing else.

Usage data and error reports (only if you say yes)

The first time you open Solid Accounting (version 26.10.0 and later), we ask: "Help improve Solid Accounting?" Nothing optional is sent until you answer. If you choose Don't send, or close the question without answering, nothing is sent; if you close it without answering, we ask again the next time you open the app. One answer covers both usage data and error reports, and it applies to the computer you answer on (every company file on it). You can change it any time in Settings → Privacy → Send usage data and error reports.

If you used an early-access build that sent this data without asking, you'll be asked once when you first open the new version. Nothing optional is sent until you answer, and nothing recorded before you say yes is ever sent.

If you say yes, the app sends:

  • Version check-in — the app version, your operating system and its version, processor type, your plan, and whether Updates & Cloud Services is active. At most once an hour.
  • Feature use counts — which screens and features were used each month ("invoices opened 47 times"), never the invoices themselves. A second switch in Settings → Privacy, Count feature use in this company file, controls whether a company file keeps these counts at all; the counts are kept on your computer and sent only if you've said yes.
  • Milestones — one-time events such as "first invoice created".
  • Import results — the program and version you imported from, how many accounts, contacts, transactions and items came in, how long it took, warning and error counts, and the error message if the import failed. Not what the records contained.
  • Error and crash reports — the error message, where in the app it happened (a stack trace), and the screen you were on. We don't add your business data to these reports, but we send error messages as the app wrote them, shortened and not filtered. An error message can sometimes include something you were working on, such as an account name or a file path.
  • Trial started — one usage event when a free trial begins, with the plan. (Starting the trial itself always contacts our license server; see When you start a free trial.)
  • Paid-feature use — when you use a paid feature, an event naming the feature, sent together with your license's activation ID so we can detect tampered copies that unlock features a license doesn't include. This event is tied to your license. It is not anonymous.

Every one of these reports carries a random install ID created when you install the app. It stays the same until you uninstall, and it's the same ID the app sends when your license is activated. So while these reports don't contain your name, email, or books, they can be linked to your installation and, through it, to your license.

We never receive your transactions, amounts, account balances, customer or vendor names, or files through usage data or error reports, except as described for error messages above.

We keep usage data and error reports for 90 days, then delete them. In Settings → Privacy, See what's been sent shows what this computer has sent, and Delete it deletes it from this computer and asks our server to delete everything it has from this computer.

Why we can do this: you said yes (consent). You can change your answer any time in Settings → Privacy; that stops future reports and doesn't affect reports already sent, which you can delete as described above.

What the app always sends

Some things are needed for the app to work, so they're sent whatever you answer to the question above:

  • License activation and checks — your license key, the random install ID, and periodic checks with our license server. This is how your license is verified and paid features are unlocked. It never depends on your answer about usage data.
  • Trial registration and checks — when you start a free trial, and when the app checks in during it: the computer signature, app version, operating system, plan, and that month's Local API call and file export counts. See When you start a free trial.
  • Update checks — the app asks our update server whether a newer version exists. The request includes your current version and a hashed computer identifier, which we use to roll updates out in stages.
  • Things you choose to send — the in-app feedback form (which attaches logs only if you choose to), and support sessions you start.

Optional services you turn on separately — bank feeds, cloud backup, the invoicing portal, and AI Training Contribution — each have their own section below.

What we do with it

InfoWhy we need itHow long we keep it
Name and emailSend your license, provide supportAs long as your license is active
Payment infoProcess your purchaseWe never store it (our payment processors do)
Machine ID and install IDVerify your licenseAs long as your license is active
Website analyticsSee which pages help and where visitors get stuck; follow up after a conversation with our teamPage events 90 days; visit summaries 13 months
Usage data and error reportsFix bugs, decide what to build next, detect tampered copies90 days, then deleted

We never use your info for ads, profiling, or selling to anyone.

Bank feeds (add-on)

If you purchase the bank feed add-on, Solid Accounting connects to your bank through a third-party aggregator (currently Plaid or Yodlee) to download transactions into your books.

How it works:

  1. You log into your bank through the aggregator's secure widget (hosted by Plaid/Yodlee, not by us)
  2. The aggregator retrieves your transactions and sends them to our server
  3. Our server passes the transactions to your desktop app
  4. Your desktop app imports them into your local books

What we see:

  • Your bank account name, type, and last four digits (for display purposes)
  • Transaction data: dates, amounts, payee names, categories
  • Connection status and sync metadata

What we don't see:

  • Your bank login credentials (these go directly to Plaid/Yodlee, never to us)
  • Your full account numbers
  • Your bank balance (unless you enable balance sync)

How long we keep it:

  • Transaction data is cached on our server for up to 7 days to handle sync failures and retries, then automatically deleted
  • Connection metadata (which bank, last sync date) is retained while the add-on is active
  • After you disconnect a bank or cancel the add-on, all cached data is deleted within 30 days

Your bank's data stays on your computer. Once transactions are imported into Solid Accounting, they live in your local database. The server cache is temporary and exists only to make the sync reliable.

Our role: For bank feed data, we act as a data processor — we receive the data from the aggregator, pass it to your desktop, and delete the server copy. Plaid and Yodlee are sub-processors operating under our data processing agreements. See the Data Processing Agreement and Subprocessor List for details.

On-device AI

Not currently enabled. On-device AI is coming soon. In the current version of Solid Accounting it is switched off and shown as "Coming soon", and no model is downloaded. When it is enabled, it will run on your computer and work as described in this section.

Solid Accounting includes an on-device AI model for PDF extraction (audit logs, user lists, custom reports that your cloud software doesn't expose via API). The AI runs entirely on your computer. Your books, the PDFs you extract, and your corrections never leave your machine unless you explicitly enable one of the opt-in features below.

How the AI works

  • The first time you use an AI feature, Solid Accounting downloads an open-source language model (Qwen3.5, Apache 2.0 license) to your computer. Typical size: 1-6 GB depending on the tier you choose.
  • All extraction, inference, and review happens locally.
  • No account, no API key, no network call is required to use the AI after the initial model download.
  • You can uninstall the AI at any time from Settings → Manage AI. Your books and data are unaffected.

Optional: Training Contribution (US customers only)

You can optionally opt in to contribute your AI corrections (your edits of model outputs) to improve future releases of our AI adapters.

What leaves your device (only when opted in):

  • Your corrections, with names of customers / vendors / employees replaced by one-way HMAC-SHA256 tokens using a salt unique to your company file. The salt never leaves your device, so the tokens cannot be reversed to recover the original names.
  • Direct identifiers (emails, phone numbers, addresses, bank account numbers, SSNs, tax IDs) are stripped before tokenization runs.
  • Structural data (amounts, dates, account codes, descriptions with PII substituted) is preserved because it's what the model needs to learn.

What does NOT leave your device:

  • The original PDF or its file path
  • Your customer / vendor / employee real names (only tokens)
  • Any other field on the correction beyond what's explicitly listed above

Governance:

  • Opt-in is off by default. Each company file has its own toggle.
  • Available only to customers with US billing addresses. Non-US users cannot enable this feature. (This is enforced at the opt-in gate and again server-side.)
  • Retention: we keep contributed corrections for at most 24 months, with older entries superseded by newer corrections of the same field. When you opt out, we stop pulling from your contributions on the next training cycle; previously-contributed data follows the 24-month retention window.
  • You can view everything that was sent, download a copy, and request deletion at any time from Settings → Privacy → Your Contributions.
  • We target the CCPA "aggregated and deidentified" standard so contributed data is not personal information under California law. We do not attempt re-identification and contractually prohibit downstream recipients from doing so.
  • Access to the raw contribution store is limited to a named list of engineers documented in our internal data-handling policy. Every query against the store is audit-logged.

Optional: Cloud AI Accelerator (future)

When available, you can opt in to route AI extraction requests to Solid Accounting's servers instead of running them locally, if your hardware is too slow to run AI efficiently. This feature is off by default and clearly labeled in the UI. When enabled, the PDF text leaves your device to our servers for extraction, and we return the structured result. No content is retained on our servers past the request-response cycle (typical: < 60 seconds).

This feature is not yet available; when it ships, we'll update this policy.

Usage data and error reports from AI features

AI features don't have separate switches for usage data or crash reports. They follow your one answer to "Help improve Solid Accounting?", described under Usage data and error reports above.

Settings → Privacy

Your answer about usage data and error reports, See what's been sent, Delete it, and your Training Contribution settings all live in Settings → Privacy.

Cloud backup (opt-in)

If you enable cloud backup, Solid Accounting keeps encrypted, off-site copies of your company file so you can recover your books if your computer is lost, stolen, or damaged. Cloud backup is off by default — you turn it on, and you choose where the backups go.

Cloud backup is a one-way backup (copies out for disaster recovery). You can use it or not — it's entirely optional.

What gets backed up:

  • The contents of your company file (all accounts, transactions, reports, and settings), split into chunks and encrypted on your device before anything is uploaded
  • Backup metadata: manifests (lists of encrypted-chunk identifiers), a device identifier, backup timestamps, and storage-usage counters

Where your backups go — you choose:

  • Managed backup (default): encrypted backups are stored in storage we provision for you at Backblaze B2. Storage is in the United States by default; EU-region storage is available for EU customers.
  • Your own folder: you point backups at a local, external, or cloud-synced folder (for example Dropbox, iCloud, OneDrive, or Google Drive). In this case your chosen provider — not us — receives the encrypted backup, and its retention is up to you and that provider.
  • Your own storage credentials: you supply your own S3-compatible storage (Backblaze B2, AWS S3, Cloudflare R2, MinIO, and similar). We store nothing on our infrastructure.

How it's protected:

  • Your data is encrypted before it leaves your computer using AES-256-GCM. You receive a 12-word recovery phrase (24 words for backups set up before version 26.10) at setup. Either your file password or the recovery phrase can unlock your backups on its own.
  • We use a zero-knowledge model: we — and the storage provider — only ever hold encrypted data. We cannot read your books. If you lose both your password and your recovery phrase, we cannot recover your data; there is no reset mechanism.
  • Backups are transmitted over TLS.

How long we keep it (managed backup only):

  • Backups follow a rolling schedule — recent daily backups plus older weekly, monthly, and yearly snapshots.
  • If your maintenance lapses, we stop creating new backups and keep your most recent daily backups for a short grace period, then delete them.
  • If you close or cancel your account, your managed backups are deleted after a grace period.
  • You can request deletion at any time; we honor deletion requests within 30 days.
  • Backups you send to your own folder or your own storage are under your control — these retention rules apply only to the managed-backup option.

Our role: For managed cloud backup we act as a data processor. Because backups are end-to-end encrypted with keys that never leave your device, we are a "zero-knowledge" processor — we store your encrypted data but cannot access its contents. Backblaze B2 is a sub-processor for managed backup storage. See the Subprocessor List, the Data Processing Agreement, and our Security Practices for details.

What we don't collect

  • Your financial data — transactions, accounts, balances, reports (unless you opt in to bank feeds or cloud backup, in which case see the sections above; note that with managed cloud backup the copy on our servers is end-to-end encrypted and unreadable by us)
  • Your company files
  • Your customers' or vendors' names, emails, or contact info (except through the invoicing portal)
  • Your browsing activity outside our site
  • Your bank login credentials (even with bank feeds — those go directly to Plaid/Yodlee)

Cookies

Our website does not use advertising or cross-site tracking cookies, and both of our analytics tools are cookieless. The one cookie that isn't strictly necessary is the sa_partner_code referral cookie described under Website visits. It's set only when you arrive through a referral link. If we add any other cookie, we'll update this section and notify you.

Our website may use essential cookies for security purposes (CSRF protection) if you interact with forms. These are strictly necessary and don't track you.

Do Not Track

We honor the Do Not Track and Global Privacy Control browser signals. When either is on, our own website analytics records nothing about your visit.

Online invoicing portal

If you use the optional invoicing portal, we do process some data on our servers — your customers' names and email addresses, invoice contents and amounts, and payment status. This is only used to send invoices and collect payments. Customer names, email addresses and invoice contents are encrypted on our server. We delete it 90 days after you close your account.

Our role: For the invoicing portal, we act as a data processor on your behalf (you are the data controller). We process your customers' data only as needed to provide the invoicing service, and only according to your instructions (sending the invoices you create).

See the Payment Service Agreement and Data Processing Agreement for details.

Third-party services we use

These companies process data on our behalf. We've chosen them carefully and have agreements in place with each.

ServiceWhat it doesWhat it sees
StripeProcesses purchasesYour payment
PayPalProcesses invoice paymentsInvoice payments
SquareProcesses invoice paymentsInvoice payments
PlaidBank feed aggregation (add-on)Your bank credentials (direct, not through us), transaction data
YodleeBank feed aggregation (add-on, backup provider)Your bank credentials (direct, not through us), transaction data
PlausibleWebsite analyticsAggregate page views, no personal info
OVHHosts our one production server — website, license server, payment endpoints, bank feed processServer infrastructure; the data those services hold
HetznerEncrypted off-site copy of that server's nightly backupsEncrypted backup archives
Backblaze B2Managed cloud backup storage (opt-in)Encrypted backup data only (zero-knowledge — we and B2 hold ciphertext we can't read)
PostmarkSends emailsEmail addresses, invoice notifications
SendGridSends emails (standby provider — not currently engaged)Email addresses
SentryTracks errors in our server-side services (not currently engaged)Error logs
ModalGPU compute for training AI adapters (no customer data — only data you've opted in to contribute, anonymized first)Tokenized training pairs when you've opted in to Training Contribution
AnthropicInternal-only: we use Claude to draft labeling templates for our engineering team. Customer data does not flow through Anthropic.No customer data

We don't sell or share your personal info with anyone else. We don't allow our service providers to use your data for their own purposes.

Aggregate and de-identified data

We may create anonymized, aggregated data from usage patterns that cannot identify any individual user. We may use this data for product improvement, industry benchmarks, and marketing (e.g., "Solid Accounting users process 2 million invoices per month"). Once data is truly anonymized, it is no longer personal data and this privacy policy does not restrict its use.

For contributed AI training data (see "Training Contribution" above) we specifically target the CCPA aggregated and deidentified standard:

  • Direct identifiers are stripped at ingestion.
  • Customer / vendor / employee names are replaced with one-way HMAC-SHA256 tokens using a per-company salt that never leaves the user's device.
  • We commit not to attempt re-identification of deidentified training data, and we contractually require any downstream recipient (e.g., annotators, researchers) to make the same commitment.
  • Under CCPA §1798.140(m), data meeting these standards is not "personal information" and this policy's retention and deletion rules apply as a matter of our policy, not as a legal obligation.

Business transfers

If Solid Accounting is acquired, merged with another company, or sells all or substantially all of its assets, your personal information may be transferred to the new owner as part of the transaction. Why we can do this: This transfer is based on our legitimate interest in conducting normal business operations (GDPR Art. 6(1)(f)). We'll notify you by email at least 30 days before such a transfer, and the new owner will be bound by the terms of this privacy policy until they notify you of changes.

Law enforcement and legal requests

We may disclose your personal information when we believe in good faith that disclosure is necessary to:

  • Comply with a valid legal process (subpoena, court order, government request)
  • Protect the rights, property, or safety of Solid Accounting, our users, or the public
  • Detect, prevent, or address fraud or security issues

If we receive a law enforcement request for your data, we'll notify you before disclosing unless we're legally prohibited from doing so (e.g., by a gag order or national security letter).

Data breach history

As of March 2026, Solid Accounting has not experienced a data breach or security incident involving user personal information. If this changes, we'll update this section and follow the notification process described in our Security Practices.

How long we keep things

  • License and purchase records — as long as your license is active, plus 3 years for tax/legal records
  • Free trial records — 24 months after the trial ends, then automatically deleted. Until then, the same computer can't start another free trial.
  • Usage data and error reports — 90 days, then automatically deleted
  • Website analytics (our own) — page-level events 90 days; per-visit summaries (entry page, source, totals) 13 months, then automatically deleted
  • Invoicing portal data — 90 days after you close your account
  • Bank feed cache — 7 days (transaction data), 30 days after disconnection (connection metadata)
  • Cloud backup data (managed) — recent daily backups plus older weekly/monthly/yearly snapshots while active; on maintenance lapse or account closure, retained for a short grace period, then permanently deleted (backups you store in your own folder or your own storage are controlled by you)
  • If you ask us to delete your data — done within 30 days (we may retain records where required by law, such as purchase records for tax compliance)
  • Support correspondence — 2 years after last contact

Kids

Solid Accounting is business software. You must be 18 to purchase it (see Terms of Service), and we don't knowingly collect personal information from anyone under 16 (the GDPR minimum age for data processing consent). If a child provides us personal info, let us know and we'll delete it promptly.

International users

We're based in the United States. If you use Solid Accounting from another country, your info may be transferred to and processed in the US.

For EU/EEA users: We rely on Standard Contractual Clauses (SCCs) as our legal mechanism for cross-border data transfers. You can request a copy by emailing privacy@solidaccounting.com.

We protect your data the same way regardless of where you are.

Your rights

Everyone can:

  • See what personal data we have about you
  • Fix anything that's wrong
  • Ask us to delete your data
  • Export your data in a common format (CSV, JSON)
  • Turn off optional stuff (usage data and error reports in Settings → Privacy, invoicing portal)

EU/EEA residents (GDPR) also have the right to:

  • Object to data processing based on legitimate interests
  • Restrict processing of your personal data
  • Receive a portable copy of your data
  • File a complaint with your local data protection authority (supervisory authority)
  • Withdraw consent at any time for consent-based processing (this doesn't affect processing that already happened)

California residents (CCPA/CPRA) can:

  • Know what personal info we collect and why
  • Request deletion of your personal info
  • Opt out of the sale or sharing of personal info (we don't sell or share data, but you have the right)
  • We won't discriminate against you for exercising these rights

Virginia (VCDPA), Colorado (CPA), Connecticut (CTDPA) residents have similar rights to access, correct, delete, and port their data, and to opt out of targeted advertising (which we don't do). Contact us using the email below.

To exercise any of these rights, email privacy@solidaccounting.com. We may ask you to verify your identity before processing your request (typically by confirming your email address and purchase details). We'll respond within 30 days for GDPR requests, or 45 days for CCPA/state privacy law requests. If we need an extension, we'll notify you with a reason.

Changes

If we make a material change to this policy, we'll email you at least 30 days before it takes effect. We'll also post a summary of changes in our legal changelog.

Automated decision-making

Solid Accounting does not use automated decision-making or profiling that produces legal effects or similarly significant effects on you (as described in GDPR Art. 22). Our invoicing portal includes automated abuse monitoring (described in the Acceptable Use Policy) that flags unusual invoice patterns for review, but flagged accounts are always reviewed by a human before any action is taken. No account is suspended, terminated, or restricted based solely on automated processing.

Data protection contact

For all data protection inquiries, data subject requests, and privacy concerns, contact our data protection lead at privacy@solidaccounting.com. We do not currently appoint a formal Data Protection Officer (DPO) as we do not engage in large-scale systematic monitoring or processing of special category data. If this changes, we'll update this section.

Questions?

privacy@solidaccounting.com

Questions? Contact privacy@solidaccounting.com