Your invoice goes out with your name on it. This page explains the system that makes sure what comes out is right — not probably right.
Before any AI update ships, it must pass 35 invoice and proposal scenarios covering standard invoices, proposals with deposits, installment schedules, tax line items, discount math, and edge-case scope descriptions. Fail one test, the update waits.
Every month, 75 live outputs are reviewed for accuracy, register, and appropriateness. The audit checks for over-formality, under-formality, scope creep, and invented content. Results are logged, not summarized.
The AI is given your data: client name, project scope, rates, payment terms. It is not allowed to invent anything that is not there. No guessed amounts, no assumed line items, no fabricated due dates. If the input is ambiguous, the AI returns a gap, not a guess.
Inputs crafted to redirect the AI — embedded in client names, project descriptions, or line items — are sanitized at the input layer before they reach the model. The AI reads your billing data. Nothing else gets through.
Generic AI tools generate from prompts alone. nvoyce passes the AI a structured context object on every call — your saved rate card, your client details, your business name, your preferred payment terms. The output is specific because the input is specific.
When you describe a service, the AI matches it against your saved rate card before generating line items. It does not infer a price from context clues — it reads your actual rates. If nothing matches, it uses your input verbatim and flags the gap.
Your clients belong to your account only. The AI cannot see another user's data. Each AI call is scoped to the requesting user's context via row-level security enforced at the database layer — not just the application layer.
nvoyce can repeat a prior invoice (same client, same structure). When it does, it copies the structure but recalculates everything from scratch. No amount, date, or total carries forward without going through the generation logic again.
Every AI-generated document enters a review state before it reaches a client. The composer shows you the output, lets you edit any field, and only sends when you confirm. The AI is a first draft, not an autonomous actor.
These constraints are built into the prompt layer and the input sanitization layer. They cannot be overridden by anything a user types.
Every dollar figure in an output must trace back to the user's rate card or explicit input. The AI cannot derive a price from context, similar projects, or general market rates.
Client names, email addresses, and company names come only from the user's client book or explicit input in the current session. The AI cannot infer or guess client details.
Prompt injection attempts — instructions embedded in client names, project descriptions, or line item fields — are stripped before the AI sees them. The system prompt is static and cannot be overwritten by user-supplied content.
The AI cannot trigger a document send without explicit user confirmation. Automation (Payme reminders, installment follow-ups) uses pre-approved templates, not live AI generation.
The AI does not classify payment terms as legally binding, suggest tax treatment for line items, or offer jurisdiction-specific legal guidance. It generates professional documents — not legal documents.
Every month, we run a full trust audit: eval suite pass rate, tone review of 75 live outputs, injection attempt log, and a hallucination check against our LLM observability traces.
Every public claim on this page is verified before it goes live and re-checked monthly. A trust claim that cannot be verified is worse than no trust claim at all.
If you got a bad output, want to understand the generation logic, or want to see the eval criteria — reach out. We take AI accuracy seriously.