| 1 · Capture |
| 1.3 |
Drag-and-drop upload |
Rutter |
PDF/JPG/PNG → bill created in draft state. Primary capture path for Phase 1. |
Open ↗ |
| 1.2 |
AI / OCR extraction |
Rutter |
Vendor, amount, due date, invoice # auto-populated on upload. ≥90% header accuracy on sample invoices. |
Open ↗ |
| 2 · Approvals |
| 2.1 |
Single-level approval workflow |
Rutter |
Bill moves draft → pending → approved → paid. Rutter owns all state transitions and downstream routing triggers. Multi-level cascading rules* committed as Phase 2 fast-follow. |
Open ↗ |
| 2.2 |
Threshold-based routing |
Rutter |
Configure a $ threshold; bills route to different approvers automatically. |
Open ↗ |
| 3 · Rails Anatomy bank API required for all rows below |
| 3.1 |
ACH (1–2 day) |
Anatomy |
Anatomy provides: bank ACH API + sandbox credentials. Rutter orchestrates execution on bill approval; never holds funds. |
Open ↗ |
| 3.2 |
Same-day ACH |
Anatomy |
Anatomy provides: same-day cutoff endpoint. Rutter triggers before cutoff; settles same business day. |
Open ↗ |
| 4 · Vendors |
| 4.1 |
Vendor master sync |
Rutter |
New vendor in connected ledger appears in Rutter in <5 min. Bidirectional. |
Open ↗ |
| 4.3 |
Bank account verification |
Both |
Anatomy provides: micro-deposit API. Rutter surfaces the verification flow in the embed. |
Open ↗ |
| 5 · Accounting sync — ledgers Anatomy is launching in Q3 |
| 5.1 |
QuickBooks Online |
Rutter |
When a bill is paid, Rutter posts bill_payment to QBO. Bidirectional sync of bills, vendors, and state changes. |
Open ↗ |
| 5.2 |
Sage Intacct |
Rutter |
Same as QBO. Native Rutter coverage — not via custom path. |
Open ↗ |
| 5.3 |
NetSuite |
Rutter |
Same as QBO. Native Rutter coverage — tier-gated in most competitors. |
Open ↗ |
| 5.4 |
Campfire |
Rutter |
Same as QBO. Differentiator — no competitor in this list ships Campfire. |
Open ↗ |
| 6 · Audit & infrastructure |
| 6.1 |
Immutable audit log |
Rutter |
Every event has timestamp + actor; surfaced in UI. Required for healthcare back-office. |
Open ↗ |
| 6.2 |
Sandbox environment |
Rutter |
All flows testable without moving real money. Required for Anatomy to integrate during the build. |
Open ↗ |
| 6.3 |
Payment webhooks |
Rutter |
created / approved / paid / failed events. Required to close the loop between Anatomy's bank and the bill state machine. |
Open ↗ |
| 6.4 |
Idempotent payment-init |
Rutter |
Retried call returns same transaction ID. Required to prevent double-pay on network failure. |
Open ↗ |
| 7 · Embed surface |
| 7.1 |
React component library |
Rutter |
@rutter/billpay-react — npm installs and renders core surfaces in Anatomy's product. |
Open ↗ |
| 7.2 |
JWT session model |
Both |
Anatomy provides: backend to mint JWT. Rutter scopes UI session to one customer entity. |
Open ↗ |
| 7.3 |
TypeScript SDK |
Rutter |
Server-side bill, vendor, and payment APIs callable from Anatomy's backend. |
Open ↗ |