Security
Built to carry other people's financial records, and to leave a trail.
FinShare does one narrow job: read the reports an owner approved, check them and deliver them. Everything here follows from keeping that job narrow.
Read-only by construction
FinShare's QuickBooks client can only make read requests to the accounting API. There is no code path that writes to a customer's books.
Only what was approved
Reports are pulled for an approved request, one request at a time. Connecting QuickBooks shares nothing by itself, and a company's connection never appears in API output.
Encrypted at rest
QuickBooks tokens, company identifiers, raw QuickBooks responses, rendered files and webhook secrets are encrypted with keys held outside the database. They are never written to logs, and neither is any financial figure.
Immutable snapshots
Each raw QuickBooks response is kept as a snapshot that can't be changed. Delivered files are rendered from it and can be re-verified against it at any time.
Append-only audit log
Every action, by a requester or an owner, is written to an audit log that the database itself prevents from being edited or deleted.
Access that ends
Every approval has an end date. When it passes, or the owner revokes, FinShare revokes its own QuickBooks token unless another live approval still needs that company.
Separated accounts
Every query a customer can trigger is scoped to their own account. One firm never sees another's requests, companies or reports.
Signed webhooks
Webhooks follow the Standard Webhooks scheme, signed with a per-endpoint secret shown once when you create the endpoint.
The access question
The safest login to someone's books is the one you never had.
Requesters never receive QuickBooks credentials, and owners never add anyone as a QuickBooks user. FinShare holds a single read connection per approved company, encrypted, and gives it up when the approval ends.
Interactive · Illustrative dates
Access with an end date
A 90-day approval starting October 1. Revoke early to see what changes.
Each pull happens inside the window. On day 90 access ends without anyone having to remember.
Show as a list
| Day | Event |
|---|---|
| 0 | Approved, first pull |
| 34 | Roll forward to Oct 31 |
| 64 | Roll forward to Nov 30 |
| 90 | Access ends; FinShare revokes its QuickBooks connection |
Integrity
A report that doesn't tie out is never delivered.
Security also means you can rely on the file. Every delivered report has passed these checks against the raw QuickBooks response.
Interactive · Illustrative figures
What FinShare checks before a balance sheet is delivered
Three of the checks, run on a short balance sheet. Edit a cell to see one fail.
- Current asset lines add up to the subtotal QuickBooks reported…
412,880.14 = 412,880.14
- Total assets = current assets + fixed assets…
651,295.14 = 651,295.14
- Total assets = liabilities + equity…
651,295.14 = 651,295.14
Show the numbers
| Check | Computed | Reported | Result |
|---|---|---|---|
| Current asset lines add up to the subtotal QuickBooks reported | 412,880.14 | 412,880.14 | Pass |
| Total assets = current assets + fixed assets | 651,295.14 | 651,295.14 | Pass |
| Total assets = liabilities + equity | 651,295.14 | 651,295.14 | Pass |
Questions from your security team?
Email support@finshare.io and we'll walk through how FinShare handles your data.