Approval limits and segregation of duties are enforced in the approve path. A bill above an approver's ceiling cannot be approved by them — there is no override checkbox.
The person who created a bill cannot also approve it. Not discouraged in a policy document — refused by the code.
The same vendor invoice number cannot be recorded twice, which is the most common way a business pays for something twice.
Where input credit cannot be claimed, the tax is capitalised into the expense rather than parked as a receivable you will never recover.
Draft → pending approval → approved → partially paid → paid, with rejection and cancellation as terminal states before approval. Approval is what posts the liability.
Each approver carries a ceiling. A bill above it must escalate; the code will not let it through, and the attempt is refused with the reason.
Eligibility is a property of the bill line, so a mixed bill splits correctly between claimable credit and capitalised cost.
Current, 1–30, 31–60 and 60+ buckets, plus what is overdue right now and what awaits approval.
Payments post against the payable and cannot exceed what is outstanding. The AI has no payment tool — it can tell you what is due and never move the money.
A vendor that bills every month and did not this month is usually an invoice in transit. The accrual agent proposes it; a person approves.
The demo runs on a seeded company with a live close waiting — two real blockers and agents holding proposals.