Rightshold™ Sign up

Answers · bookkeeping

How do I prove my small business books weren't edited after the fact?

Last updated

TL;DR: Lock each period once it's reconciled, keep the accounting software's audit log, and at every close save the key reports as files, hash them and get the hashes timestamped by someone outside the business. Lock dates and audit logs live inside an account that an admin controls (admins can remove lock dates, and QuickBooks Online keeps audit-log events for two years), so the outside timestamp is what lets a lender, buyer, auditor or partner check later that the numbers you showed then are the numbers you have now. Fix mistakes in closed periods with new adjusting entries, not edits.

What should I check, step by step?

1. Reconcile the month, then lock it. In QuickBooks Online turn on Close the books and pick the option that requires a password, not the warning-only one. In Xero set a lock date (only the administrator role can).

  1. Keep the closing-date password or the Xero administrator role away from whoever does day-to-day entry. The owner or the outside accountant should hold it.
  2. At each close, export the trial balance, general ledger detail, balance sheet and profit and loss as PDF or CSV files and store them outside the accounting software.
  3. Compute a SHA-256 hash of each file (sha256sum on Linux, shasum -a 256 on macOS, certutil -hashfile <file> SHA256 on Windows) and keep the list of hashes with the files.
  4. Get the hash list timestamped outside the business: an RFC 3161 time-stamping authority, an OpenTimestamps proof anchored in Bitcoin, or a third-party record service. Emailing it to your accountant gives a dated copy too, but a weaker one.
  5. Correct closed periods with a dated adjusting entry in the open period and a note saying why. If you must reopen a period, export and hash a new version and keep the old one.
  6. Keep the files and hashes as long as your tax records. The IRS says 3 years in general, 4 years for employment tax records, 6 years if more than 25% of income went unreported and 7 years for bad-debt or worthless-securities claims. That's longer than QuickBooks Online's two-year audit log.

What lock dates and audit logs do, and what they don't

QuickBooks Online's Close the books setting protects transactions dated on or before the closing date. Depending on the option chosen, anyone changing them gets a warning or must enter a password. With the warning-only option, users can still save changes.

How a hash and an outside timestamp prove the books didn't change

A SHA-256 hash is a 64-character fingerprint of a file. Change one digit in an exported report and the hash comes out completely different.

Sealing records as they happen, not just at month end

Month-end hashes cover totals. Disputes are usually about one invoice, refund or tip. Sealing each record when it happens means a later change to a single invoice shows up, not just a change in a monthly total.

How do I ask Rightshold about this (free, no key)?

Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “Is the Rightshold ledger block that seals my mirror-ledger entry anchored in Bitcoin yet?”

One-click setup

{
  "tool": "ledger_anchor",
  "arguments": {
    "height": "<anchor.block_height from GET /v1/mirror-entries/{id}>"
  }
}

Rightshold doesn't connect to QuickBooks or Xero, check your numbers or do bookkeeping. The mirror proves what you sealed and when. It doesn't stop you from changing your own books, and it can't show a record was accurate when you sealed it. Sandbox accounts stay off the public ledger. Not legal, tax or accounting advice.

What are the sources?

Related

Not legal advice. JSON · Markdown · All answers

Get a free API key in one call

No card and no email needed. 100 free credits; the license and policy checks stay free without a key.

curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_...   # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
  -H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'