PolyAccounts · Scenario
Accounting, billing and trust for a small law firm
Matters, timekeepers, rate resolution, prebills, invoices, statements and IOLTA-style trust accounting on one double-entry ledger, with full agent access through MCP. English, Spanish and French.
Direct answer
PolyAccounts runs time and billing and the general ledger in the same system, so a matter, its time entries, the invoice, the payment and the trust movement all post to one set of books. Trust accounting enforces that each client trust balance stays at or above zero and that the trust bank balance always equals the trust liability, with a per-client subledger behind it.
An AI agent connects through MCP or the hosted HTTPS API with a credential scoped to the firm. It can record time and expenses, generate prebills, post invoices, receive payments, apply trust, run receivable and payable aging and produce statements. Every write carries an idempotency key and every edit requires the current record revision.
What the billing module does
Clients, matters, timekeepers and rates with five-level rate resolution (matter and timekeeper, matter, client and timekeeper, client, timekeeper default). Time and expense entries move from unbilled to draft to billed. Invoices move from draft to posted, partial, paid or void, and each posting carries a source tag so an accountant can trace it. Tax uses firm defaults with client-level jurisdiction overrides and exemptions, and invoices snapshot the applied rate.
Statements, receivables, payables, vendor bills, a running timer, automated billing schedules (weekly, monthly, quarterly) and a read-only client portal in the client’s language and currency. Invoices in a foreign currency post the FX difference automatically. Trust stays in the firm’s home currency.
| Agent operation | What it does |
|---|---|
| billing.prebill | Assemble unbilled time and expenses for a matter or client |
| billing.invoices.create / post / void | Draft, post to the ledger, or void with history retained |
| billing.payments.receive / void | Record receipts against invoices, keeping balance and ledger aligned |
| billing.trust.deposit / disburse / apply / balances | Move client trust with the non-negative rule enforced |
| billing.ar-aging / ap-aging | Aging buckets for receivables and vendor bills |
| billing.statements.generate | Client statements for a period |
How it compares for an agent
Most practice-management products expose a partner REST API and, in some cases, an assistant inside their own interface. Check their developer documentation for a published MCP server, exact-decimal reads, idempotent writes and revision checks before assuming an agent can run the billing cycle end to end.
PolyAccounts ships those primitives as the primary interface: a remote OAuth MCP endpoint, a downloadable stdio connector, a self-serve synthetic sandbox and a public catalog generated from the live tool list. The trade-off is maturity. The product is in early access for supervised evaluation with synthetic data and does not certify statutory accounting in any jurisdiction.
Try the billing cycle with an agent in ten minutes
Create a sandbox with companyKind law_firm, then run the matter billing workflow bundle from the public agent kit: create a client and matter, record time, prebill, post the invoice, receive a partial payment, apply trust to the balance, and read the client statement and trust balance back from the ledger.
The sandbox is synthetic and expires automatically. When the workflow fits your firm, an administrator connects the real workspace from Settings and the same operations apply.
curl -X POST https://polyaccounts.com/api/agents/sandbox \
-H "Content-Type: application/json" \
-d '{"companyKind":"law_firm","language":"en","currency":"USD"}'