Trust
Security
Where your data lives, how rules run, and why no AI model decides what gets posted.
Deployed in your environment
InvoiceIQ runs where you run it — your cloud account or your own hosts — and you own the code. Documents are stored in your bucket or on your disk; rules, lookups, policies and the posting log live in your PostgreSQL database. Nothing about your ledger sits inside a vendor’s multi-tenant service.
Where the AI is, and where it is not
Models read documents and write rule code at authoring time. At posting time no model is called for the accounting decision: an approved rule runs in a restricted sandbox — no imports, no file or network access, no clock, no randomness, under a timeout. That boundary is why the same invoice codes identically every time, and why a model cannot be prompted into posting something.
Nothing governs money until it passes a test
- Coding rules must reproduce their stored example invoices.
- Match rules are backtested against bills you have already posted.
- Placement rules are exercised against every charge shape the composer can produce.
- Activation is refused otherwise. Every version keeps one-click rollback and an audit row naming who changed it.
Nothing posts on its own
Every posting is a person approving a decision the system has already shown its working for. The golden rule is enforced one final time after the ERP has the bill: if the composed total does not equal the invoice, the bill is deleted and the post refused. Every attempt — successful or refused — is written to the Posting Log with who clicked it.
ERP credentials
The demo build ships with an in-app demo ERP and pins every live-ERP credential to empty, so a walkthrough can never reach a real accounting system. On boot the service logs which ERP client it selected, so the configuration is verifiable in one line.
Access
One sign-in for both products, token-based sessions, secrets held outside the codebase, and a module registry that lets either product be switched off at runtime. Self-service sign-up is off unless a deployment opts in.
Email intake
A shared mailbox is read through Microsoft Graph or IMAP with a message-id ledger and a received-time watermark, so nothing is ingested twice and mailbox history is never back-ingested on day one.
Want to see it rather than read about it?
A walkthrough takes an hour and starts with your own documents.