You are handing us your contracts. Here is how they are held.
To audit an invoice we need the rate sheets, the field proof, and the approvals behind it — which is to say, the terms you have negotiated with every vendor you use. This page describes what protects that, and is specific enough to be checked.
Tenant isolation
Every business record in LedgerLock — invoice, contract, field ticket, finding, document, audit event — carries the identifier of the organization that owns it, and is indexed on it.
Scoping is written explicitly at every query, not applied invisibly by a framework hook. Magic that adds a tenant filter for you is magic that can silently stop adding it. An explicit clause is one that a reviewer can grep for and a test can assert on.
Server code enters through a single session gate that resolves the caller's organization and role before any data is read. There is no path that reads a record first and checks ownership afterwards.
Encryption
All traffic is served over TLS. HTTP requests are redirected, and the application is only reachable over HTTPS.
Data at rest — the database and uploaded documents alike — is encrypted by the underlying managed platforms using AES-256.
Secrets and connection strings live in the deployment platform's encrypted environment store. They are not committed to the repository and are not readable from the client.
Document storage
Invoices, tickets, contracts, and receipts are the most sensitive things you give us, so they are stored privately and are never publicly addressable. There is no guessable URL that returns one.
A document is served only to an authenticated member of the owning organization, through a short-lived link generated for that request. The link expires; a copied URL stops working.
Deleting a document deletes the stored object, not just the row that points at it.
Roles and least privilege
Access is role-based across seven roles — Admin, Controller, AP Analyst, Ops Manager, Procurement, Executive, and Auditor — each mapped to an explicit set of capabilities.
The map is a flat matrix, small enough to read in one screen, and the settings page renders it verbatim so an administrator can answer “what can a Controller actually do?” without guessing. Approving payment, dismissing a finding, and managing members are separate capabilities held by different roles.
Auditor is read-only by construction, including read-only on the audit log. Nobody is granted a capability because it was convenient during a support conversation.
Tamper-evident audit log
Every meaningful action — an approval, a hold, a dismissed finding, a rate change, a member added — writes an event inside the same database transaction as the change itself. If the change lands, so does its record.
Events are append-only and hash-chained: each one carries the hash of the event before it. Nothing updates an audit event and nothing deletes one.
That chain is the point. Altering or removing a past event breaks every hash after it, which makes tampering detectable rather than merely discouraged — including tampering by an administrator, and including by us.
Data retention and deletion
You own your data. Findings, decisions, and audit history are exportable for the life of the account.
We delete customer documents and records on request. Deletion is real deletion of the stored objects, not a hidden flag, and it propagates to backups on the platforms' standard backup rotation.
If you close your account we do not retain your documents as a matter of course. Tell us what you want kept and for how long, and that is what happens.
We do not train models on your data
Your invoices, contracts, rates, vendor names, and findings are never used to train or fine-tune any model — ours or a vendor's. There is no setting to check, because there is no such use.
Where AI reads a messy document or drafts an explanation, it operates on your data to answer your question and for nothing else. It never approves a payment, never produces a score without a stated reason, and never sends a vendor a message on its own.
Your commercial terms with your vendors are the most confidential thing in an AP department. They are not training material.
What we have not done yet.
LedgerLock is an early-stage product from a small company. Vendors at this stage routinely imply certifications they do not hold, and a finance buyer who discovers that during diligence is right to walk. So, plainly:
- SOC 2
- Roadmap, not a claim. LedgerLock is not SOC 2 certified and no audit is complete. The controls on this page are built with that audit in mind — particularly the append-only log — but until a report exists we will not imply one does. We will tell you where the process stands if you ask.
- Penetration testing
- No third-party penetration test has been performed yet. We will publish the summary when one has.
- Certifications and frameworks
- We hold no ISO 27001 certification and make no HIPAA or PCI claims. LedgerLock does not process payments or store card data, and it is not intended for protected health information.
- Subprocessors
- LedgerLock runs on managed infrastructure — application hosting, a managed Postgres database, object storage, and an identity provider — each of which holds its own certifications. We will name every subprocessor and its role on request, in writing.
- Enterprise controls
- SSO and SAML are Enterprise-plan features. If your security review requires controls not listed here, tell us what they are before you buy rather than after.
Reporting a vulnerability
If you believe you have found a security issue in LedgerLock, email security@ledgerlock.co with enough detail to reproduce it. We will acknowledge within two business days and keep you updated until it is resolved.
We will not pursue legal action against anyone who reports a vulnerability in good faith, gives us reasonable time to fix it, and does not access or destroy other customers’ data while investigating.
Send your security review before you send an invoice.
We would rather answer a hard questionnaire early than find out in month three that we cannot.